管理画面の「メールタイプ」フィールドをクリックすると「Discourse::NotFound」エラーが発生する

「Email Type」フィールド(例:user_watching_first_post)をクリックすると、宛先から返送されたバウンスメッセージの詳細が表示されるはずです。

しかし、セルフホスト環境では上記のエラーメッセージが表示されます。これを修正する方法はありますか?

よろしくお願いいたします。

「いいね!」 2

その通りです。私がホストしている Discourse サイトで確認したところ、問題なく動作しています。あなたのサイトが Discourse の最新バージョンである場合、この問題はバウンスメッセージの転送をメールサーバーがどのように処理しているかに関連している可能性があります。

「いいね!」 2

ありがとうございます。送信メールには Mailgun を使用しています。Discourse の推奨設定を使用したと思います。

受信メールについては、Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver を使用しています。しかし、インストール以降一度も更新していません。それが問題の原因かもしれませんか?Discourse の場合は ./launcher rebuild app ですが、受信メールの場合は ./launcher rebuild mail-receiver でよいのでしょうか?

「いいね!」 1

はい、それがアップグレード方法です。最後のアップデートからだいぶ経っていると思いますが、最初の着手点として、まず Discourse をアップグレードするのが良いでしょう。

「いいね!」 2

両方ともアップグレードしましたが、同じエラーが発生したままです(アップグレード後に受信したメールにも同様の問題が含まれていると思われます)。他に考えられることはありますか?

「いいね!」 3

同じ問題が発生しています。セルフホストで最新バージョンです。推奨される方法でバウンスを処理しています。適切なバウンス処理に変更する前のリンクは正常に機能しています。

「いいね!」 4

はい、おそらく Discourse が Mailgun からそのメッセージを受け取れていないのでしょう。Webhook の仕組みは詳しくありませんが、バウンスメッセージを送信するのではなく、Discourse に対して一時的または永続的なエラーが発生したことを通知しているだけではないかと推測します。

「いいね!」 2

この Discourse の機能を Mailgun と連携させる方法はありますか?

少なくともエラーコードとエラーメッセージを表示できるはずです:

SMTP エラーコードと SMTP エラーメッセージの両方が保持されます
“code”: 550,
“address”: “'baz@example.com”,
“error”: “Message was not accepted – invalid mailbox. Local mailbox 'baz@example.com is unavailable: user not found”

https://documentation.mailgun.com/en/latest/api-bounces.html#examples

もしそれが不可能なら、少なくともリンクが機能しない理由を説明する適切なエラーメッセージが必要です :slight_smile:

「いいね!」 2

これに関して何か作業は進んでいますか?もし進んでいたら、大変感謝します :slight_smile:

Digital OceanとMailgun(つまり、主な推奨事項)を使用しているので、この問題は私だけではないと想像します。

「いいね!」 3

自身のテストの結果、多くの場合、バウンスがメール受信者に全く届いていないようです。(接続試行が見つかったのは1件だけで、すぐに失われました)。Return-Path ヘッダーが全く設定されていないように見えますが、これは本来設定されるべきものでしょうか?そうでない場合、ほとんどの場合送信されていないのではないかと考えています。

「いいね!」 2

ここでもまだ問題が発生しています。以前の発言にもかかわらず、サイトの起動に戻ると、これらのリンクはどれも機能しないようです。当初は、バウンスメールを適切に処理するようになる前(https://meta.discourse.org/t/handling-bouncing-e-mails/45343)のバウンスのみに影響があるように見えました。

「いいね!」 3

エラーログに次のような警告が多数表示されていることに気づきました。

メールを処理できません: Email::Receiver::AutoGeneratedEmailError

受信: ...から
	宛先: <bounce+f7e463.5f70e9-...@forum.example.com>; ...
件名: メッセージを配信できませんでした

これが、Discourse にバウンスメールの詳細がない理由かもしれません。

ログにエラーは表示されていませんが、問題は継続しています。バウンスメールリストのエントリの「メールの種類」の値をクリックすると、「エラーが発生しました: Discourse::NotFound」と表示されます。

「警告」にチェックを入れるとどうなりますか?

既に選択されていました。ログをもう少し遡ってみましたが、時折メール関連のメッセージは確認できるものの、あなたが言及していたメッセージは見当たりません。

Mailgunで同じ問題が発生しました。ホストは異なりますが、それが原因ではありません!

MailgunのVERP設定の指示に問題があるのかもしれません。

「いいね!」 2

しばらく前からこの状態でしたが、現在多くのバウンスが発生している理由を調査しようとしたところ、問題が発生し始めました。

問題は、Email Type 列にリンクがなく、:information_source: アイコン(赤い矢印)の後ろに何も表示されないことのようです。

これらをクリックすると、次のようになります。

ページのコードを確認したところ、HTML のアンカータグには href がまったく欠落しているようです。

Mailgun で VERP を設定しており、それ以外は正常に機能しているようです。

「いいね!」 1

これは、バウンスされた応答がDiscourseによって処理されなかった場合に期待される動作です。Discourseがバウンスを受信した場合、この機能は正常に機能しますが、そうでない場合はすべてのバウンスに対してこの応答が表示されます。

Configure VERP to handle bouncing e-mails に従って、ダブルチェックしてテストを実行していただけますか?

「いいね!」 1

その場合は、より良いメッセージが表示されると良いでしょう。

Discourse が Mailgun の Webhook からバウンスについて知るだけの場合、バウンスの詳細が Discourse に送信されない、ということでしょうか?合っていますか?

もし合っているなら、それらの詳細を Discourse に送信し、Discourse が受信したバウンスと同じ場所に記録して表示する方法はありますか?Mailgun API でそれが可能になると思います ("Discourse::NotFound" error when click "Email Type" field on admin/email/bounced - #8 by Jonathan5)。

どのような状況で、外部メールサービスではなく Discourse がバウンスを処理しますか?(Discourse がメールをバウンス/拒否できることは知っていますが、意図されたメール受信者から受信したバウンスメッセージの処理についてです。)

「いいね!」 3

同意します。実際には壊れていないものが壊れているように見えてはいけません。Discourse は、より安心できるメッセージを提供できるはずです。

「いいね!」 3