AWS WorkMail を使って SMTP でメール送信する時の注意点

背景

独自ドメインの割り当て, メールアドレス認証などが設定済の WorkMail を AWS サービス以外のメールクライントからもメールの送信に使いたいと思った.

設定

安定のクラスメソッドさんの記事を元にやっていけばほぼ問題ない.

dev.classmethod.jp

注意点

リージョンに沿ったホスト指定

WorkMail は、現在3つのリージョンで提供されているため
us-west-1, us-west-2, us-east-1 から WorkMail を使用しているリージョン用のホストを選択する必要がある.

docs.aws.amazon.com

Secure connection が必須

WorkMail の SMTP は Secure connection: Required なため
クライントの設定で SMTPS を有効にする
or
ホストに ssl://smtp.mail.us-east-1.awsapps.com と明示的に指定する必要がある.

非同期処理で行う

新規登録などユーザの動作をトリガーとしてメールを送る場合に
SMTP での送信処理は体感で, 500ms~2000msぐらい(場合によってはもっと)かかるので
同期処理だとユーザに待ち時間が発生してしまうため, SQS などを使って非同期で処理する.