APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Amazon SESでメールリレーさせてみる

目次

はじめに

こんにちは、株式会社エーピーコミュニケーションズの松尾です。

やりたいことはこのような構成になります。 Postfixからメールクライアントに対してメールを送信する際に、直接送信するのではなく、SESを経由(リレー)させて、メールを送信することを検証していきます。

Route53はSESへ送信元ドメインを認証させるために設定しています。今回でいうと、メール送信元のドメイン(example.com)と宛先のドメイン(example.net)をあらかじめRoute53でドメイン登録、SESでの”ID”への”認証”を実施しておきます。

ゴール

次の点を目的としていきます。

  • Amazon SESをメールリレーサーバとして使用するための手順を理解する
  • 受信メールのヘッダーからリレーされたメールサーバを確認する

SESの構築

別の記事でSESへのID認証の手順を紹介しているのでそちらを参照ください。

Postfixの構築

EC2をLinuxで用意したあとからの設定です。

Postfixをインストール

yum -y install postfix cyrus-sasl cyrus-sasl-plain

Postfix設定ファイルへメールリレー先にSESのエンドポイントを設定

  • vim /etc/postfix/main.cf
relayhost = [email-smtp.ap-northeast-1.amazonaws.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
myhostname = ec2.<SESのIDで登録したドメイン>
mydomain = <SESのIDで登録したドメイン>

SESエンドポイントとの認証情報を設定

  • vi /etc/postfix/sasl_passwd
[email-smtp.ap-northeast-1.amazonaws.com]:587 SMTPユーザー名:SMTPパスワード

パスワードファイルの権限修正とハッシュ化

chmod 600 /etc/postfix/sasl_passwd
postmap hash:/etc/postfix/sasl_passwd
systemctl restart postfix

587番ポートの有効化 3行のコメントアウトを外す

  • vim /etc/postfix/master.cf
submission inet n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

再起動

systemctl restart postfix

587番ポートで待ち受けているか確認

ss -natup | grep master

メール送信テスト

sendmailコマンドでメールを送信。送信元をsendtest@example.com、宛先をuser1@example.netとした場合のコマンド例です。

sendmail -f sendtest@example.com user1@example.net
Subject:test

test1

.

届いたメールのソースを確認。

SPFで送信元のIPアドレスが確認できる

送信元として表示されているIPアドレスを逆引きしてみると、、

PS C:> nslookup 23.251.234.11

名前:    e234-11.smtp-out.ap-northeast-1.amazonses.com
Address:  23.251.234.11

PS C:>

AWSのドメインになっていることが確認できます。

参考

techblog.techfirm.co.jp

mebee.info

まとめ

Amazon SESを経由したメールが送信されていることを確認しました。検証で送信したのは1通だけだったのでメールリレーするメリットはほぼありませんが、大量にメールを送信したい場合や送信元IPアドレスの信頼性が低い場合には、Amazon SESを経由したメール配信構成をとるのが良いのではと思います。

おわりに

私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp