Amazon SES の送信設定

前回投稿で、Amazon SESをセットアップしました。今回は送信の設定を行います。

Amazon SES では、Amazon SES コンソール、Amazon SES Simple Mail Transfer Protocol (SMTP) インターフェイス、または Amazon SES API を使用して E メールを送信することができます。

通常、テスト E メールを送信して送信アクティビティを管理する場合は、コンソールを使用します。
一括 E メールを送信する場合には、SMTP インターフェイスまたは API を使用します。

SMTP 対応のソフトウェアパッケージ、アプリケーション、またはプログラミング言語を使用し、Amazon SES を介して E メールを送信する場合や、Amazon SES を既存のメールサーバーに統合する場合には、Amazon SES SMTP インターフェイスを使用します。

① Amazon SES コンソールを開きます

② ナビゲーションペインで、[SMTP Settings] を選択します。

メーラーを設定するときに参照

※ 緑の破線部分が設定時に必要です。以下の説明を参照。

③ ユーザー名・パスワードの取得(IAMユーザーのアクセスキーとシークレットアクセスキー)

 SESのSMTPインターフェースを使う場合、SMTP認証(SMTP AUTH)は必須。
 SMTP認証はユーザー名とパスワードのペアで認証されますが、SESはそれにIAMユーザーのアクセスキーとシークレットアクセスキーを利用します。

上記SMTP設定の画面で、サーバー名とポートの値を書き留めます。SMTP に接続するには、サーバー名とポートを使用します

サーバー名 : email-smtp.us-west-2.amazonaws.com
ポート: 25、465、または 587

【AWSドキュメントでの説明】

  • Amazon SES Classic SMTPインターフェースにアクセスするには、Amazon SES ClassicSMTPのユーザー名とパスワードが必要です。
  • Amazon SES Classic SMTPインターフェースを介してEメールを送信するために使用するクレデンシャルは、AWSリージョンごとに固有です。
  • Amazon SES Classic SMTPインターフェースを使用して複数のリージョンでEメールを送信する場合は、使用する予定のリージョンごとにSMTP認証情報のセットを生成する必要があります。
  • Amazon SES Classicコンソールを使用してSMTPクレデンシャルを生成すると、Amazon SES Classicコンソールは、Amazon SES Classicを呼び出すための適切なポリシーを持つIAMユーザーを作成し、そのユーザーに関連付けられたSMTPクレデンシャルを提供します。

④ [Create My SMTP Credentials] を選択し、SMTP 認証情報を生成する手順に進みます。

 ※ コンソールを使用してAmazonSES Classic SMTPクレデンシャルを作成しようとしたときに、IAMユーザーにアクセス許可がない場合、
   アカウントに「iam:ListUsersの実行が許可されていません」というエラーが表示されます。

⑤ SMTPユーザーを作成します。(SMTPユーザーの名前を入力するか、指定されているデフォルト値を使用できます)[作成]を選択します。

SMTPユーザーを作成
認証情報のダウンロード

[ユーザーのSMTP認証情報の表示]をクリック。SMTPクレデンシャルが画面に表示されます。
※ このダイアログボックスを閉じた後は資格情報を表示または保存できないため、これらの資格情報をダウンロードまたはコピーして安全な場所に保存してください。

※ ダウンロードした「credentials.csv」に記載ある

「閉じる」クリックで、IAMコンソールにアクセスします。
既存のSMTPクレデンシャルのリストを表示するため、ナビゲーションペインの[アクセス管理]で、[ユーザー]を選択します。
検索バーを使用して、「ses-smtp-user」というテキストを含むすべてのユーザーを検索します。

IAMダッシュボード
「ses-smtp-user」というテキストを含むすべてのユーザーを確認

※ SMTPクレデンシャルをローテーションする場合は、上記の手順を実行して、SMTPクレデンシャルの新しいセットを生成します。
  次に、新しいクレデンシャルをテストして、期待どおりに機能することを確認します。
  最後に、IAMコンソールで古いSMTPクレデンシャルに関連付けられているIAMユーザーを削除します。

⑥ 使用する接続方法 (STARTTLS または TLS ラッパー) に基づいて、E メールの送信元の Amazon SES SMTP ポートを選択します。

 ※ ポート=465:暗黙的TLS ポート=587:StartTLS

 デフォルトで、すべてのEC2インスタンスのポート 25 アウトバウンドトラフィックを制限します。
 SMTP ポート 25 を使用する必要がある場合は、この制限の解除をリクエストできます。または、E メールを送信する別のポートを選択できます。

⑦Amazon SES SMTP エンドポイントに接続し、E メールの送信元のポート経由で接続をテストします。たとえば、telnet コマンドを実行できます。

※ AmazonLinux2では、telnet が初期状態でインストールされていなかったので、「sudo yum -y install telnet」を実施した。

 $ telnet email-smtp.us-west-2.amazonaws.com 465
  Connected to email-smtp.eu-west-1.amazonaws.com.

EC2インスタンスからSMTPインターフェースを利用する条件

  1. SMTP認証を使い、IAMユーザーのアクセスキーとシークレットアクセスキーを指定する
  2. TLSを使う
  3. SESのエンドポイントを指定する
  4. ポート番号を587に指定する(smtp=25の場合には、E メール送信制限解除申請が必要)
  5. 送信元メールアドレスにはSESで認証済みのものを指定する

 

⑧WordpressからSESのSMTPインターフェイスを使って、メール送信を行う。そのために、プラグイン、「WP Mail SMTP」を使います。

プラグイン「WP Mail SMTP」をインストール

「送信元アドレス」欄へSESで設定してある独自ドメイン
を利用した任意のアドレスを入力。
 ※ @前の<任意>は好きな文字列でOKです。
→ admin@35.78.52.203

「送信者名」欄へは任意の文字列を入力し、メーラーは@「Other SMTP」を選択

SESダッシュボードに記載されたSESエンドポイントを入力

暗号化は「SSL」

SMTPポートは「465」

TLS自動化と認証は「ON」にします

SMTPクレデンシャルを生成した時のIAMで作成されたSMTPユーザとパスワードを
「SMTP Username」と「SMTP Password」
へそれぞれ入力し、[Save Settings]をクリックします

以下の画像のようなテキストが出たら成功です。

「WP Mail SMTP」により、送信テストします。

Workmail でメールを受信できているか確認

ログイン

WP Mail SMTP でテスト送信
WordPressのコンタクト7から問い合わせした

今回はメール送信のAWSサービスである、AmazonSESの内容だったのですが、 次回はメール受信のほうのサービス「AmazonWorkMail」をセットアップします。