AWS-SES

Amazon Simple Email Service


アクセスレベル

・サンドボックス(初期状態)
小さな送信クォータ

・プロダクション
送信先に制限なし
送信クォータは実績によって決定

アクセスレベルの変更

SESコンソールより、
『Request Production Access』をクリック

お問い合わせの種類 上限緩和
上限タイプ SESのプロダクションアクセス
リージョン 適宜
ウェブサイトアドレス  
Pre-Productionチェックリスト 全部チェック
申請理由の説明 SESサービスを本番サービスとして利用する為。

利用申請

Management Consoleにログインし、SESを利用するリージョンを指定
・US East (N. Virginia)
・EU (Ireland)
・US West (Oregon)
※2015年01月現在、SESをサポートしているのは、上記3つのリージョンのみ

『Request Production Access』をクリック

SMTPユーザー作成

『SMTP Setting』から『Create My SMTP Credentials』をクリック
IAM User Name:
※任意のユーザー名で問題ないらしい。デフォルトのユーザー名で設定
『Create』を選択

『Show User SMTP Security Credentials』
SMTPユーザー名とパスワードを確認できる
※『Download Credentials』でcsvでのファイルダウンロードも可能

リレー許可設定

・fromアドレスでの許可
設定したアドレスがfromのメールをリレー許可する。

・ドメインでの許可
指定したドメインからのメールリレーを許可。

fromアドレスでの許可

『Verified Senders』→『Email Addresses』から、『Verify a New Email Address』を選択
リレーを許可するアドレスを入力し、『Verify This Email Address』を選択

登録したアドレスへ確認メールが送信されるので、本文のURLをクリックし、認証させる

SESコンソールの『Email Addresses』にある、該当アドレスのStatusが
『pending verification (resend)』から『verified』に変わっている事を確認
※上記の設定で、該当のfromアドレスがSESをリレーできるようになる。

ドメインでの許可

『Verified Senders』→『Domains』から、『Verify a New Domain』を選択

Domain:
に許可するドメインを記載し、『Verify a This Domain』を選択

TXTレコードの生成
TXTレコードが生成されるので、保存しRoute 53に設定する
Name
Type
Value

spfレコード設定

設定 項目
Name $ドメイン名
Type TXT
Value "v=spf1 include:amazonses.com ~all"

SESとPostfixの連携設定

必要なパッケージ導入
・cyrus-sasl-md5
・cyrus-sasl-plain

# yum install cyrus-sasl-md5.x86_64
# yum install cyrus-sasl-plain.x86_64

認証ファイル作成

認証用ファイルを/etc/postfix/sasl_passwdのファイル名で作成
$SESエンドポイント $smtpユーザ名:$smtpパスワード
パーミッションは600にして、ハッシュ化

# vi /etc/postfix/sasl_passwd
例 [リージョン]:ポート パスワード
[email-smtp.us-west-2.amazonaws.com]:587 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# chmod 600 /etc/postfix/sasl_passwd
# postmap hash:/etc/postfix/sasl_passwd

postfixの設定

下記設定を実施すれば、送信可能になる
# vi /etc/postfix/main.cf

・ドメイン設定
myhostname = %ホスト名.$サブドメイン.$ドメイン
mydomain = $サブドメイン.$ドメイン
myorigin = $mydomain

・リレーホストにSESエンドポイントを指定
relayhost = [email-smtp.us-west-2.amazonaws.com]:587
※使用するリージョン・ポートで適宜修正

・sasl設定とtls設定

## smtp_sasl
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

## smtp_tls
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

postfix再起動

・構文チェック
# postfix check

・再起動
# /etc/init.d/postfix restart

amazonAMIの場合

デフォルトのMTAがsendmailなので、MTAをpostfixに切り替える設定が必要

・sendmail停止
# /etc/init.d/sendmail stop
# chkconfig sendmail off

・mtaをpostfixに切り替え
# alternatives --config mta
※2のpostfixを選択

送信テスト

・メールコマンドのインストール
# yum install mailx.x86_64

・送信コマンド
# mail あて先@アドレス
echo "Test" | mail -s "testmail" -r from@example.com to@example.com

エラーログ

※ドメインまたはアドレスが認証されていないと、リジェクとされる。
said: 554 Message rejected: Email address is not verified. (in reply to end of DATA command))

  • 最終更新:2016-10-14 12:50:10

このWIKIを編集するにはパスワード入力が必要です

認証パスワード