11

Rails 3 アプリケーションからメールを送信するために Mandrill を使用しています。本番環境では、管理コンソールで設定した API キーを使用しています。すべてのユーザーに電子メールを送信する可能性のある開発およびテスト SNAFU を防ぐために、開発およびテスト環境の構成にガベージ キーを配置し、本番構成には実際のキーのみを配置しました。Mandrill では、複数の API キーを作成できます。開発またはテスト キーを使用して電子メールを送信するための API 呼び出しが、特定の前提条件が満たされない限り失敗するように Mandrill を構成する方法があるかどうかは誰にもわかりません (電子メール ドメインが mycompany.com に一致するなど)。

4

4 に答える 4

14

Mandril にテスト API キーが追加されました。彼らのサイトでもっと読む

于 2013-07-05T12:26:34.687 に答える
10

Mandrill API キーはすべて同じように機能し、アカウント内のすべての API 呼び出しに完全にアクセスできます。現在、開発、サンドボックス、テスト キー、またはスコープ API キーの概念はありません。ただし、テスト モード/機能は開発ロードマップにあります。私は現在 ETA を持っていませんが、私たちが取り組んでいることは間違いありません。

追加するために編集: この回答の当初の時点では、これは不可能でした。Mandrill にテストモードが追加されました。

于 2013-04-02T00:33:05.520 に答える
7

Mandrill で「開発」API キーを作成するには、2 つの方法が考えられます。これらは、さまざまなユース ケースに対応します。

  1. テスト キーを作成します。このキーを使用して送信された電子メールは実際には送信されません。これは最も簡単な方法であり、テスト フローで実際にテスト メールを受信する必要がない場合に適しています。( [送信] タブで送信されたはずの電子メールの内容を引き続き確認できます。)

  2. ライブ API キーを作成し、Rules Engineを使用して、受信者アドレスが何らかのパターンに一致しない限り、このキーで送信された電子メールが自動的に拒否されるようにします。テスト フローで、送信したメールを実際に受信する必要がある場合 (たとえば、パスワード リセット機能のエンド ツー エンドの自動テストがある場合) は、このアプローチを使用する必要があります。

アプローチ 1: テストモードを使用する

テスト モードは 2013 年に Mandrill に追加されました。これを使用するには、まず[設定] タブの [ SMTP & API 情報]セクションの[ API キー]サブセクションからテスト キーを作成します。ここで作成する最初のキーは常にライブ キーですが、[新しい API キー] をもう一度クリックすると、テスト キーの作成を選択できます。

を示すスクリーンショット

それが完了したら、テスト キーを使用して電子メールを「送信」し (電子メールは実際には送信されません) 、画面の右上にあるドロップダウン メニューから [テスト モードをオンにする] オプションをクリックします。

テストモードをオンにする方法を示すスクリーンショット

管理パネルがテスト モードになっているときに、 [アウトバウンド] タブに移動すると、Mandrill にテスト API キーで送信するように依頼した電子メールが、実際に送信されたかのように表示されます。

アプローチ 2: ルール エンジンの使用

まず、 [設定] タブの [ SMTP & API 情報]セクションの[ API キー]サブセクションから新しいライブ API キーを作成します。キーに説明を指定する必要があります。指定しないと、ルール エンジンから参照できなくなります。

次に、 [アウトバウンド] タブの [ルール]セクションに移動し、 [ルールの追加] をクリックします。

「アウトバウンド」、「ルール」、および「ルールの追加」を示す画像

ルール インターフェイスから、API キーがテスト キーであり、受信者の電子メールが選択したパターンと一致する場合に電子メールを拒否するルールを設定します。パターンは、 のような単一の電子メール アドレスのtestbot@yourdomain.com場合もあれば、 のようなドメイン全体の場合もあります*@yourdomain.com

ルールの例

独自の複雑なパターンを作成したい場合は、 docsに従って、Mandrill は Python のfnmatchモジュールを使用してパターンを電子メール アドレスと照合することに注意してください (これは glob 構文を使用します。Unix を使用している場合はシェルで使い慣れている可能性があります)。 .

このキーを使用してパターンに一致するドメインに送信する電子メールは実際に送信され、ライブの [送信] タブに表示されます。パターンに一致しないものは送信されず、ライブの送信タブに「拒否」として表示されます。

于 2015-06-14T16:08:37.203 に答える
0

テスト/開発でもメールが送信されるのを見るのが好きなので、物事がエンドツーエンドで機能することを確認できます. お客様がテスト メールを受け取る際の問題を防ぐために、本番環境でない場合に受信者を置き換えるイニシャライザー (Ruby on Rails) を構成します。個々のメーラー実装にチェックを任せないでください - 誰かが忘れるでしょう。

MandrillMailer.configure do |config|
  config.api_key = ENV['MANDRILL_API_KEY']

  # Set recipients to test@ourdomain.com if we're not in production
  if !Rails.env.production?
    config.interceptor = Proc.new do |params|
       params[:to] = [{ email: "test@ourdomain.com", name: "Test", type: "to" }]
    end
  end

end
于 2016-09-18T23:28:58.127 に答える