Mailgun がメールを送信しないことがある

こんにちは、また私です :slight_smile:
新しいユーザーが当フォーラムに登録する際、メールが届かないケースがあることに気づきました。

以下の画像をご覧いただくと、3 日前や 7 日前に登録されたユーザーがいても、登録メールが届いていないことがわかります(赤枠は「最後にメールが送信された日時」を示しています)。

メール設定は正しく行われていると認識しています。なぜなら、私はメールを受け取れているからです(例えば、「パスワードを忘れた」をクリックしてテストすると、手順を含むメールが私に届きます)。Mailgun は別の会社ですが、それが原因かどうかは確信が持てません。何が問題なのでしょうか?

編集: 今、自分でも登録を試みましたが、Discourse が登録メールを送ったと表示されるものの、メールボックスには届いていません(すべてのフォルダ、スパム、ゴミ箱を確認しました)。また、管理画面のメール→送信済みを確認しましたが、このユーザーの「サインアップ」メールは表示されませんでした。新しいユーザーがフォーラムに登録できないように見えるため、ご支援をお願いします。

Mailgunのログを確認してください。

素早い返信をありがとうございます :slight_smile:
ログを確認しましたが、登録メールの送信を試みた形跡すら見当たりません。そのため、Discourse 側に問題があるのではないかと思いました(Mailgun にメール送信を依頼する処理に失敗している可能性など)。何かアイデアはありますか?

メールに使用するポートがサーバーホスティングプロバイダーによってブロックされていないか確認してください。

一部のプロバイダー(DigitalOcean など)は、新しいサーバーからのスパムを防ぐために、ポート 25、465、587 をブロックしていることが知られています。この問題に直面している場合は、Mailgun をポート 2525 で使用してみてください(app.yml でポートを変更し、ビルドし直してください)。

ポートがブロックされているかどうかを確認する簡単な方法は、telnet コマンドを使用することです。
telnet smtp.mailgun.com <ポート>

返信ありがとうございます。
残念ながら、talnet はインストールされていません。ポートを 587 から 2525 に変更してみましたが、サインアップメールの送信がまだできないようです。私は digitalocean を使用していますが、それが問題の可能性があることは知っています。もし彼らがそれをブロックしているなら、Discourse は admin->mail logs の失敗セクションにそのことを記述するべきではないでしょうか?

「talnet」と入力していませんか?

/sidekiq に何が表示されますか?

最近、再起動を行いましたか?

はい、入力しました。また「which talnet」も試してみましたが、何も返ってきませんでした(Linux コマンドでありながらプロトコルでもあるものではないでしょうか?)。

/sidekiq を確認してみました(同様のスレッドでその提案を見ていました)。エラーは見当たらず、アクティベーションメールの送信を試みたという記載もありませんでした。最近再起動は行っており、以前提案された通りメールポートを 2525 に変更しようと試みました。

それは

telnet

です。talnet ではありません。

ああ、ごめんなさい、そんなバカな間違いを…:sweat_smile:
どうやらどちらも有効なようです:

ということは、DigitalOcean や Mailgun の問題ではないですよね?

Discourse 側では問題がないことがわかりました。
example.com/logs を確認して、メールに関連する具体的なエラーがないかチェックしてください。また、/sidekiq を確認して、失敗しているジョブがないか確認してください。

ログには以下が表示されています:

image

これらはメールの問題とは関係ないと思いますが、もし解決方法をご存知の方がいれば、ぜひ教えていただきたいです。
sidekiq では、失敗または停止したジョブは見当たりません。
ついでに、皆様の協力に感謝いたします :slight_smile:

それは奇妙に思えますし、理由も思い当たりません。Mailgunのログでメールが送信されている様子は確認できますか?他のメールは正常に動作していますか?そのようなメールアドレス宛にDiscourseのテストメールを送信しても問題ありませんか?

表示されている送信済みのメールは以下の通りです:

最後の自動サマリーレポートは2日前に私に送信されました(現在は小さなフォーラムなので、メールの数は多くありません)。
今、このレポートのテスト送信を試みましたが、サマリーメールは送信されました(ちなみに、サマリーメールは管理者宛にのみ送信されるのでしょうか?通常ユーザーで試しましたが、機能しませんでした)。
非管理者のメールアドレスにテストメールを送信する方法はありますか?

ああ、問題の箇所が見えました!

サイト設定の disable_emails を制限していませんか?

これが「はい」または「スタッフのみ」に設定されていると、Discourse 側でメールが完全に無効化され、既存のスタッフメンバーを除いて誰もメールを受け取らなくなります。

はい、その通りです!
気づいていませんでした(おそらく、私の設定が半分英語、半分ヘブライ語で書かれているせいかもしれません)。
それが正解です。完璧です、もう動きます :sweat_smile:
お手伝いいただき、ありがとうございます :slight_smile: