AWS-SES
Amazon Simple Email Service
- アクセスレベル
- アクセスレベルの変更
- 利用申請
- SMTPユーザー作成
- リレー許可設定
- fromアドレスでの許可
- ドメインでの許可
- spfレコード設定
- SESとPostfixの連携設定
- 認証ファイル作成
- postfixの設定
- postfix再起動
- amazonAMIの場合
- 送信テスト
- エラーログ
アクセスレベル
・サンドボックス(初期状態)
小さな送信クォータ
・プロダクション
送信先に制限なし
送信クォータは実績によって決定
アクセスレベルの変更
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