経緯
AWS SESでテンプレートを元にメール送信するために、APIのSendTemplatedEmail
を叩く。
レスポンスでメタデータが返却されて成功している...!と思ったらメールが届いていない...!
この現象の解決に時間がかかったため、記載。
原因
テンプレートのレンダリングのエラー
が原因で、この場合はメール送信エラーは返さない。既にSESはメッセージを受け入れているからだそう。
テンプレートが適切か見直そう。
ドキュメントから、以下抜粋
If your call to the SendTemplatedEmail operation includes all of the required parameters, Amazon SES accepts it and returns a Message ID. However, if Amazon SES can't render the email because the template contains errors, it doesn't send the email. Additionally, because it already accepted the message, Amazon SES doesn't return a message stating that it was unable to send the email.
送信エラーが出ないのは厄介すぎる。。。
やはり公式も、以下のようにレンダリング失敗イベントが発生したときに通知の設定をすることを強く勧めている
For these reasons, we highly recommend that you set up Amazon SES to send you notifications when Rendering Failure events occur. For more information, see Sending Personalized Email Using the Amazon SES API in the Amazon Simple Email Service Developer Guide.