SMTPサーバーは接続するが、メールの送信に失敗

==================== メールテスト ====================
本格的なテストを行うには、http://www.mail-tester.com/ からアドレスを取得してください
REDACTED  宛にメールを送信中 . . 
support@maniabots.xyz:REDACTED@smtp.zoho.com:587 を使用して callumokane123@gmail.com 宛に送信をテスト中。
SMTP サーバー接続に成功しました。
callumokane123@gmail.com 宛に送信中 . . 
メール送信に失敗しました。

==================== 完了! ====================

アカウント設定用のアクティベーションメールが届きません
何かご協力いただけると幸いです :squinting_face_with_tongue:

私の推測では、あなたのフォーラムは forum.maniabots.xyz という名前で、noreply@forum.maniabots.xyz から送信されているが、あなたのメールサーバーがそれを許可していないようです。app.yml の下部に、アドレスを設定できる行があります。これを手動で編集する必要があります。

より詳しくご説明いただけますか?私のサイトは support.maniabots.xyz にあり、メールアドレスは support@maniabots.xyz です。app.yml の設定は問題ないようです。

## ビルド後に実行するカスタムコマンド
run:
  - exec: echo "カスタムコマンドの開始"
  ## 最初の登録時の 'From' メールアドレスを設定する場合は、以下の行のコメントアウトを解除して変更してください:
  ## 最初のサインアップメールを受信した後、再度この行をコメントアウトしてください。一度だけ実行すれば十分です。
  - exec: rails r "SiteSetting.notification_email='support@maniabots.xyz'"
  - exec: echo "カスタムコマンドの終了"

行のコメントアウトを解除し、メールアドレスも正しいことを確認しました。また、コンテナを再構築しましたが、まだ確認メールが届きません。

申し訳ありません。それが私の最善の推測でした。

では、何をすればよいのでしょうか?必要であれば、サポートのためにサーバーへのアクセス権をお渡しすることもできます!

申し訳ありません。私はここで最善を尽くしましたが、これ以上のアイデアはありません。

もし私の問題解決を希望される場合は、私のインストールパッケージをご覧ください:https://www.literatecomputing.com/discourse-installation-packages/。

Mailgunの設定を代行することも可能です。カスタムメールサーバーが動作しない原因は、百通りもの可能性が考えられます。

まあ、自分のドメインでメール設定を再構成したくありませんし、Mailgunにさらに費用を払いたくありません。

既存のメール関連の設定を変更する必要はありません。Mailgun は月間 1 万件まで無料で利用できます。

こんにちは皆さん、
この問題に対する解決策が見つかりましたか?
Docker ホストに Postfix を設定して、送信メールを処理するようにしました。SSH から mail コマンドでメールを送信するときは問題なく動作するのですが、Discourse Docker では OP と同じエラーが発生します。このスレッドのヒント:How to set SMTP config to use localhost? を参考に、Discourse Docker からメールサーバーへの接続時にユーザー名とパスワードを指定しなくても認証エラーが出ないようにしました。しかし、今度は「送信に失敗しました」というエラーが出るようになりました。何かご存知の方はいらっしゃいますか?

メールサーバーの設定が、Discourse の導入プロセスで最も難しい部分になるとは思いもしませんでした… :frowning: Discourse のインストールは完璧で、あらゆる Linux のメールサーバー設定とは比べ物にならないほどよく考えられています。

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

そのため、すべてのインストール手順では、メールサーバーの構築は試さないよう記載されています。現在、メールサーバーを運用するのは非常に困難です。

私の推測では、Discourse は送信元のメールアドレスにホスト名を使用しているため、あなたのメールサーバーがそれを送信していないのでしょう。しかし、問題の原因は数十種類あり、それらはすべてここで得られるサポートの範囲を超えています。

この問題の解決策を探している方のために——私は解決しました。以下の投稿が非常に役立ちました:How to get Discourse to work with Postfix - #11 by shu_kaze - Linux - Level1Techs Forums

問題は、Discourse が Docker 環境から Postfix サーバーに接続できなかったことです。技術的には、接続は別のネットワークから行われるため、Postfix の許可ネットワークリストにそのネットワークが含まれていませんでした。Postfix の設定にある mynetworks に Docker ネットワーク(私の場合は 172.17.0.0/16)を追加するだけで動作するようになります。

まず、Docker から Postfix への接続自体が可能か確認する必要があります(Postfix での「許可されたネットワーク」チェックが実行される前に、接続が確立できるかどうか)。また、inet_interfaces の設定も確認してください。Discourse が Docker 内で動作するため、localhost では機能しないため、私は all を設定しました。

それでも動作しない場合は、Postfix のログを確認してください。私の場合は /var/log/mail.log ファイルにあります。

この情報が将来誰かの役に立てば幸いです。動作させるまでに長い日数を要しましたが、今では有料のメールサービスに依存せずに無料で運用できています(ドメインに SPF レコードを追加することを忘れないでください。そうしないと、Gmail や他のメールプロバイダーがメールをブロックし、スパムフォルダにも入らず、配信されないままになります)。