Amazon SES を使用した SMTP 認証情報でのメール送信は機能しますが、Discourse からは機能しません

Amazon SES を設定しました。
サンドボックスから出たので、未確認のアドレスにもメールを送信できます。
Amazon SES のドキュメントより:

アカウントがサンドボックスから出ると、受信者のアドレスまたはドメインが確認済みかどうかに関係なく、任意の受信者にメールを送信できます。ただし、「From」、「Source」、「Sender」、「Return-Path」アドレスとして使用するすべての ID を確認する必要があります。

SMTP 認証情報も設定しました。

サンドボックス外の受信者にテストメールを送信することは、Amazon S3 ダッシュボードやその他の SMTP テストツールから機能します。
しかし、Discourse からは機能しません。

app.yml

  DISCOURSE_SMTP_ADDRESS: email-smtp.eu-west-3.amazonaws.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: AKIA****************
  DISCOURSE_SMTP_PASSWORD: "*************************************"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: forum.monocycle.info # (address to send notifications from)
  DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.monocycle.info # (address to send notifications from)

メールでの返信設定:

Discourse からテストメールを送信すると、次のエラーメッセージが表示されてメールがスキップされます。

554 Message rejected: Email address is not verified. The following identities failed the check in region EU-WEST-3: monocycle.info+verp-3a76559e11c2b9a318165af8eb968f22@gmail.com

そして、app.yml を変更した後にアプリを再構築したのは当然です。

この問題が発生する理由と、その解決方法について何かアイデアはありますか?

エラーメッセージは、monocycle.info@gmail.com のIDを作成して確認する必要があることを示唆しています。ラベル(+verp-...)は、ラベルなしでアドレスが確認されるとすべて受け入れられるため、確認する必要はありません。

これは、返信時のメールアドレスがReturn-Pathアドレスとして使用されるためであり、これは引用で確認が必要と強調されているタイプの一つです。

他の方法で送信できる理由がわかりませんが、AmazonダッシュボードとSMTPテストツールのテストは、Discourseが行うようにReply-To/Return-Pathアドレスとして使用するのではなく、返信時のメールアドレスに送信していたため、機能したのだと思います。

IDに関するドキュメントはこちらです。

「いいね!」 1

はい、こちらに記載されている通りです。

最初は理解できませんでしたが、SESでGmailアドレスを認証済みアドレスとして追加してみます。

「いいね!」 1

AFAIK、SESで±アドレスを使用することはできません。しかし、Discourse経由で毎日SESを使用しています。

「いいね!」 2

monocycle.info@gmail.com を確認し、Discourse がユーザーにメールを送信できることを確認しました。メールでの返信機能も動作します。
何か問題があれば、数日中に確認します。

もう少し詳しく説明していただけますか?私が書いたこと(すべて正常に動作しているように見えること)に関してです。:slight_smile:

「いいね!」 1

2つの異なる点があります。

  • SESは、着信または発信トラフィックでプラス記号(+)で区切られたアドレスを使用できません(プラス記号の形式の正確な用語を本当に覚えていません)。
  • DiscourseからSES経由で常にメールを送信しています。

メールによる作成/返信を使用しようとしたとき、そのためにGmailを使用する必要がありました。

これはあなたに関連がありますか…全くわかりません :man_facepalming:

「いいね!」 1

なるほど、明確化ありがとうございます。SESでは±アドレスを使用していないので、私のケースでは関連がないと思います。:slight_smile:

Amazonではラベルと呼んでいますが、user+label@domainアドレスのことを指しているのであれば、それがメール用語なのか、単にAmazonの用語なのかは覚えていません。これらがサポートされていないと確信していますか?ユーザーはかなり一般的に使用しています。

ドキュメントで見つけられる唯一のことは、SMTPUTF8拡張がサポートされておらず、ローカルパート(@より前)が7ビットASCII文字に制限されていることです。これには+文字が含まれます。

いいえ、そうではありませんが、+verp… はそのように機能します。それとも、私が完全に間違っていますか?

まあ、メール関連のことはあまり理解していないので、私の返信は少し的外れになることがあります。


私のメールでの返信設定は、確かに「+」などを使用するGmailアドレスです。

「メールでの返信」設定がオフの場合、Discourseのメール送信は機能します(私の記憶が正しければ)。

「メールでの返信」設定がオンで、SESでGmailアドレスを認証しない場合、Gmailの返信先アドレスを持つかどうかにかかわらず、Discourseはメールを送信せず(例:テストメールやダイジェストメールにはGmailの返信先アドレスがありません)、554 Message rejected: Email address is not verified というエラーが発生します。

SESでGmailアドレスを認証すると、Gmailの返信先アドレスを持つかどうかにかかわらず、Discourseから送信されるすべてのメールが機能するようです。

もちろん、これらの仕組みについてもう少し詳しく知りたいのですが、機能している限りは…それが私の主な関心事です。:smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.