Migadu のメールで問題が発生しています

こんにちは、

Discourse を私の SMTP サーバー(Migadu を使用しています)と連携させる設定で問題が発生しています。

使用している設定は以下の通りです:

DISCOURSE_SMTP_ADDRESS: "smtp.migadu.com"    
DISCOURSE_SMTP_USER_NAME: "community@kloclabs.com"
DISCOURSE_SMTP_PASSWORD: "<password>"
DISCOURSE_SMTP_ENABLE_START_TLS: true

これらの設定はメールクライアントでは問題なく動作しているのですが、Discourse では問題が起きているようです。

./discourse-doctor を実行すると、以下のエラーが表示されます:

500 Unrecognized command

設定はすべて正しく行われているように思えます。SMTP サーバーへの telnet 接続も問題ありません。

どなたかお手伝いいただけると幸いです。

どのホストを使用していますか?
ポートを定義してみましたか?(587 または 2525 など、お使いのサービスプロバイダーがサポートするポート)

自分で OVH の専用サーバーでホストしています。

ポートを 587 に設定しようとしましたが、以下の設定を config に追加してもうまくいきません。

DISCOURSE_SMTP_AUTHENTICATION: login

ターミナルから管理者として認証済みですが、今度は異なるエラーが表示されます。

550 From ヘッダーがログインユーザーと一致しません

それはありえません。./discourse-doctorは、./discourse-setupを実行するのと同じ方法で実行する必要があります。SMTPの設定のために./discourse-setupを実行しているのでしょうか、それともapp.ymlを手動で編集しているのでしょうか?変更を加えた後に再構築していますか(または./launcher destroy app; ./launcher start appを実行していますか)?

リバースプロキシを使用しているため、app.ymlを手動で編集しています。メールの「From」ヘッダーを変更する必要があるようです。

はい、これで解決したようです。Migadu では、メールに認証とともに一致する「From」ヘッダーが必要です。上記の認証スクリプトを追加し、管理設定でシステム全体の送信元アドレスを設定したところ、問題が解決しました。

もし他の人にも同じ問題が発生している場合は、以下の手順を実行してください:

  • Discourse フォルダに移動します:cd /var/discourse
  • containers/app.yml に認証方法を追加します:DISCOURSE_SMTP_AUTHENTICATION: login
  • 検証メールを受信できないため、ターミナルから手動で管理者アカウントを作成します。そのためには、まず ./launcher enter app を実行し、続けて rake admin:create を実行して、ターミナルに表示される手順に従ってください。
  • 最後に、管理設定で notification email を、認証対象のメールアドレスに変更します。

app.yml ファイルで送信元アドレスを設定できればより簡単だったのですが、その方法が見つかりませんでした。

整理できてよかったです!それは見たことがありません。

ここにあります:

それとも私が読めないだけ!? すごい、ありがとう!