AWSでメール送信しようとしてローカルpostfix使うと、キューに溜まってる。。。AWSではスパムの温床にならないようにメール送信の制限がかけられています。ま、あたりまえといえばあたりまえですよね。その辺のセキュリティ対策はしっかりとされているようで。
では、メールを送信したい場合にどうすればいいかということですが、1.自分のインスタンス直接送るためにAWSに申請をして制限を解除してもらう。2.SES(Simple Email Service)を使う。
AWSに制限解除してよって申請してみた
先に結論を書きます。「2回とも拒否られましたw」。許可下りるまでがんばろうかと思ったのですが、労力を考えて諦めました。NG時の対応を備忘として残してます。NG内容なのでだいぶザックリとした内容です。
1回目のNG
・AWSのEメール解除申請フォームから申請(公式説明ページはコチラ)
・Email Address:登録してるやつで
・Use Case Description:問い合わせに対するメール送信のため。(rDNS registration.)
・Elastic IP address:EC2の固定IP
・Reverse DNS record:対象のDNSレコード
・こんな感じの拒否メール到来
* A history of violations of the AWS Acceptable Use Policy * A history of being not consistently in good standing with billing * Not provided a valid/clear use case to warrant sending mail from EC2
よくよく調べると先にやることがあると。完全にこちらの落ち度。逆引きレコードを自分で登録して承認してもらうようなフローみたい。さすがに1回じゃ諦めれませんので2回目。
・AWSのroute53で逆引き用ホストゾーンの作成
・逆引きレコード登録
・AWSのEメール解除申請フォームから申請(公式説明ページはコチラ)
・Email Address:登録してるやつで
・Use Case Description:英語で書いてみた(ちゃんと事実を)
Run WordPress on Amazon Linux on EC2 and open a blog. I use it only for the mechanism to notify my email address when an inquiry is made to my blog. Emails will only be sent to the email address requested in advance or on the web,
・Elastic IP address:EC2の固定IP
・Reverse DNS record:対象のDNSレコード
・全く同じ拒否メール再来(なんでやねん)
* A history of violations of the AWS Acceptable Use Policy * A history of being not consistently in good standing with billing * Not provided a valid/clear use case to warrant sending mail from EC2
単一の宛先だけだから許可してほしいところだけど、それならそれでSES使ったらいいじゃないということなのか。なんにせよレスが来るまで24時間ほどあったので、待たされるのが嫌だったので一旦この手の対応は諦めました。(受理されるパターンの内容は後述)
SES(Simple Email Service)の利用
ということで、SESをやってみました。いろいろと制限もあるけど、自分のメールアドレスに飛ばすだけなのでとりあえずコレでいいかという感じです。
・送信するドメインはRoute53に登録済が前提の手順です
・まずはSESへdomainの登録
次の画面で登録すべきDNS情報が出力されます。route53を利用している場合は「Use Route53」を押下。次の画面で本当に登録していいかどうかの確認画面がでます。
※申請が通らなかった時の対応でMXレコード登録してたのでWarningが出ました。「置き換えますか?」って書いてあるのでチェックをいれて置き換えます。
「Create Record Sets」を押下して作成します。
・送信先のメールアドレスを登録
届いたメールを確認し、URLをクリックします。AWSのコンソール上で該当のアドレスの「Verification Status」が「verified」となっていればOKです。
・送信試験
AWS管理コンソールで対象のメールアドレスにチェックを入れて「Send a Test Email」を実施。メールが届いたことを確認します。
・アカウント追加と認証方法の取得
「IAM User Name」に適当なユーザー名を入力(smtp認証で必要)し作成を押下。その後、認証情報をダウンロードできるので取得。
以上で設定は完了です。あとはメールの送信の仕方次第ですが、私はWordpressからの送信をするため、コチラでその設定について紹介いたします。
備考
申請を通すためのサンプル内容(過去2回下記の内容で受理実績有り)
-Send information such as EC2 resource monitoring by email.
-We plan to provide an EC site, and will send an email when registering a user or purchasing a product.
-The SMTP protocol is never accepted from other than the own server.
-Send mail from only web system.
-Send auto-reply email based on user action.
-Build MTA and take necessary measures such as SPF / DKIM / rDNS.
-Establish a secretariat and check bounce emails.
-User can refuse to receive email.
以下日本語訳
-EC2リソースモニタリングなどの情報をメールで送信します。
-ECサイトの提供を予定しており、ユーザー登録時や商品購入時にメールを送信します。
-SMTPプロトコルは、自身のサーバー以外からは受け入れられません。
-Webシステムからのみメールを送信します。
-ユーザーの操作に基づいて自動返信メールを送信します。
-MTAを構築し、SPF / DKIM / rDNSなどの必要な対策を講じます。
-事務局を設置し、バウンスメールを確認します。
-ユーザーは電子メールの受信を拒否できます。
コメント