メールでの返信と互換性のない通知

Email delivery configuration checklist のメールに関するガイドとそれに続くものを注意深く読みました。
How to setup "Reply by email address" now that it must be different from the "Notification email"Notification email cannot be the same as reply by email のリンクを確認しました。
フォーラムで使用しているすべてのアドレスは、Thunderbird や Claws Mail などのメールクライアントでメールを送受信できます。
4つの異なるアドレスがあり、最初の3つのみがこのトピックに関連しています。

  • app.yml の管理アドレス: admin@
  • app.yml の通知アドレス: forum@
  • reply-to アドレス: reply@
  • およびメールによる投稿アドレス: questions@
  1. フォーラムのメーリングリストステータスで取得する通知は正しく送信されます。また、管理者ページの email/server-settings での送信テストも問題なく完了します。

  2. メールによる返信を設定すると、この機能は正常に動作しますが、通知が機能しなくなります。
    その場合、前述の送信テストが「501 5.5.4 You are not allowed to send from this address.」というステータスで失敗します。

  3. メールによる返信を無効にすると、テストは再び正常に通過します。

なぜこのエラーが発生するのか、そして通知と「メールによる返信」の両方を正しく設定するにはどうすればよいか、誰か説明してもらえますか?

「いいね!」 2

そのメッセージはメール送信サービスからのものです。非常に明確です。

smtpサーバーが使用できるメールアドレスから送信する必要があります。これは、example.comから送信するように設定されているのに、forum.example.comから送信しようとしているような状況です。

「いいね!」 4

その場合、送信テストはOKなのに、「メールで返信する」を設定するとKOになるのはなぜですか?通知の設定は何も変更していないことを明記しておきます。

Discourseでは、メールの準備段階で何が起こっているのでしょうか?

「いいね!」 1

問題はDiscourseにあるようです。

ログの設定を微調整したところ、投稿されたメッセージが正しいアドレスによって認証されていることがわかりました。

2026-02-25T12:54:24Z TRACE Data store
iteration operation (store.data-iterate) elapsed = 0ms
<3.14, remotePort = 47104, accountName =
“forum.cagut@domain.tld”, accountId = 31

しかし、次のようになります。

2026-02-25T12:54:24Z ^[[35;1mTRACE ^[[37;1mRaw SMTP output sent
(smtp.raw-output) listenerId = “submissions”, localPort = 465, remoteIp
= 51.178.53.14, >
<53.14, remotePort = 47104, size = 73,
contents = “MAIL
FROM:<reply.cagut+verp-8bf40c695b1f612e555cf25f3c14c9b8@domain.tld>\\r\\n”

メールサーバーはこの形式のアドレスを認識していません。

「いいね!」 1

そのマジックナンバーは、Discourseが返信をトピックに接続する方法です。

メールによる返信をサポートするように別のメールサーバー(またはこのサーバーを変更する)が必要になります。または、メールによる返信を無効にする必要があります。

はい、それが「メールでの返信」を使用するための識別子であることはわかっています。

したがって、「返信…」が設定されている場合、メール送信のテストは機能しません。ドキュメントにはその旨が記載されておらず、エラーは最初の回答にあったメールサーバーからではなく、Discourseから発生しています!

ところで、「from」アドレスがどのようにしてこの「マジックナンバー」を持つことができるのでしょうか。このアドレス形式はヘッダーで使用されています。
あなたの返答は、全くそれになっていません。

この「From」の変換は行うべきではありません。

そして、ソフトウェアによって提供されている機能を諦めるべきだと答えるのは奇妙です…

明日、私は他の調査を行います。

「いいね!」 1

これはヘッダーの変換というわけではありません。リプライ・バイ・メールが有効になっている場合、DiscourseはエンベロープFromをreply_by_email_addressアドレスパターンに設定し、メールが返信可能な場合はreply-to:も設定したメールを送信します。

例えば、ここmetaでは次のようになっています。

notification_email: notifications@meta.discoursemail.com
reply_by_email_address: incoming+%{reply_key}@meta.discoursemail.com

これは次のように変換されます。

Return-Path: <incoming+verp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>
From: Person <notifications@meta.discoursemail.com>
Reply-To: Person <incoming+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>

通知メールはFromヘッダーに入り、reply_by_email_addressはエンベロープFromに入ります。私たちは、...@meta.discoursemail.com宛てのものはすべてmetaに配信されるようにメールサーバーを設定しており、これにより機能しています。

しかし、メールサーバーがこのエンベロープFromの使用を許可していない場合、報告されているエラーが発生します。

このエラーは間違いなくメールサーバーから発生しています。Discourseがあなたに報告している可能性はありますが、エラーを生成しているのはメールサーバーです。

「いいね!」 2