ナレッジベース
お客様自身の Amazon SES アカウント経由でメールを送信する
SMTPを経由してご自身のAmazon SESアカウントを接続します:1つのリージョンを選択してそこに留まること、Easy DKIM、接続する「前」にサンドボックスから抜け出すこと、およびSMTP認証情報がAWSアクセスキーではない理由。
AWS アカウントと、お使いのドメインの DNS へのアクセスが必要です。SES はこのリストの中で圧倒的に安価なオプションですが、最も手順が多いものでもあります。
Amazon 独自のドキュメント: ドメインの検証 · SMTP 認証情報の取得 · サンドボックスからの移行
⭐ Zinn では、REST API ではなく SMTP インターフェースを介して SES に接続します。 そのため、AWS アクセスキーではなく、SMTP ユーザー名とパスワードの入力が求められます。どちらの経路でも全く同じメッセージが配信されますが、SMTP を使用すると、外部からの診断が非常に困難な一連の AWS リクエスト署名に関する問題を回避できます。また、これは、当社のようなツールが使用できるように Amazon が正確に認証情報を公開しているインターフェースでもあります。
1. リージョンを選択してそこに留まる
SES はリージョン固有のサービスです。以下のすべて(検証済みドメイン、認証情報、送信クォータ)は1 つの AWS リージョンに属しており、他のリージョンには存在しません。
顧客に最も近いもの(ヨーロッパの場合は eu-west-1、北米の場合は us-east-1)を選択し、記録しておきます。アイルランドでドメインを検証してからフランクフルトで認証情報を作成することは、ここで午後を無駄にする最も一般的な原因であり、そこで発生するエラーにはリージョンに関する情報は一切含まれません。
2. ドメインを検証する
Amazon SES コンソール → Identities (ID) → Create identity (ID の作成) → Domain (ドメイン)。 mail.yourdomain.com などのサブドメインを入力します。
Easy DKIM を有効にし、RSA_2048_BIT を選択します。SES から 3 つの CNAME レコードが提供されます。
| タイプ | ホスト | | --- | --- | | CNAME | <token1>._domainkey.mail.yourdomain.com | | CNAME | <token2>._domainkey.mail.yourdomain.com | | CNAME | <token3>._domainkey.mail.yourdomain.com |
3 つすべてを追加します。検証は通常 1 時間以内に完了します。
⭐ また、カスタム MAIL FROM ドメイン(bounce.mail.yourdomain.com)を有効にし、要求される MX および SPF の TXT レコードを追加します。これを行わない場合、エンベロープ送信者は amazonses.com になるため、SPF はあなたではなく Amazon に合致することになり、DKIM のみに依存することになります。
3. サンドボックスから抜け出す — これは多くの人が見落とす手順です
⛔⛔ 新しい SES アカウントはサンドボックス内にあるため、個別に検証したアドレスにしか送信できません。 それ以外のものはすべて受け入れられますが、配信されることは一切ありません。
これはまさに、当社の検証ステップが存在する理由となる障害です。サンドボックス内では、SES は完全に通常の成功応答でメッセージを受け取り、その後破棄します。AWS でたまたま検証したアドレスにテストを送信してセットアップを検証した場合、それは機能しますが、その後実際の顧客へのすべてのメッセージが消滅します。
アカウント ダッシュボード → Request production access (本番アクセスのリクエスト)。 Amazon から送信内容とバウンスの処理方法について質問されます。自分の顧客に対するトランザクション通知について正直に数文で記述すれば、通常 24 時間以内に承認されます。
⭐ ここで SES に接続する前にこれを行ってください。事前に実行しておけば、何も失敗しないため、後でデバッグする必要もありません。
4. SMTP 認証情報を作成する
SES コンソール → SMTP settings (SMTP 設定) → Create SMTP credentials (SMTP 認証情報の作成)。
これにより、送信のみの権限を持つ IAM ユーザーが作成され、SMTP ユーザー名と SMTP パスワードが発行されます。
⛔ これらは、AWS のアクセスキーおよびシークレットではありません。 特定のアルゴリズムによって IAM シークレットから派生したものであり、互換性はありません。ここに AWS のシークレットアクセスキーを貼り付けても毎回認証に失敗し、エラーには単に認証情報が拒否されたと表示されます。
⚠️ パスワードは一度しか表示されません。 ページを離れる前に CSV をダウンロードしてください。
5. Zinn® で接続する
ダッシュボードで Email sending (メール送信) を開きます。
- Provider (プロバイダー) — Amazon SES
- Send from this domain (このドメインから送信) —
mail.yourdomain.com - AWS region (AWS リージョン) — 手順 1 のリージョン(例:
eu-west-1) - SMTP username (SMTP ユーザー名) — 手順 4 の情報
- Port (ポート) — 587 のままにする
- SES SMTP password (SES SMTP パスワード) — 手順 4 の情報
ホスト(email-smtp.<region>.amazonaws.com)は当社側で構築するため、ホスト名を誤入力する心配はありません。
6. テスト送信を行ってコードを入力する
AWS で検証していない別のドメイン(個人の Gmail アドレスなど。これがサンドボックスから脱出していることを証明する最適な方法です)の受信トレイ宛てに Send test message (テストメッセージの送信) ボタンを押します。コードを読み取り、入力します。
動作しない場合
実際の顧客に送信しようとしたときに "Email address is not verified" (メールアドレスが検証されていません) と表示される場合 — まだサンドボックス内にいます。手順 3 を確認してください。
535 Authentication Credentials Invalid (535 認証が無効です) — SMTP 認証情報の代わりに AWS アクセスキーを使用した(手順 4)、または入力したリージョンとは異なるリージョンの認証情報を使用しています。
"Maximum sending rate exceeded" (最大送信レートを超過しました) — 新しい本番アカウントの初期制限は、1 秒あたり 14 メッセージ、1 日あたり 50,000 メッセージです。これは大量の通知ですが、大規模な顧客ベースを移行する場合は、事前に制限の引き上げをリクエストしてください。
テストでは機能したが本番で停止した — SES の Reputation (レピュテーション) ダッシュボードを確認してください。バウンス率や苦情率が閾値を超えると、Amazon は自動的に送信を一時停止します。古い顧客リストを使用している場合、この閾値は簡単に超えてしまいます。