Mail-receiver や Discourse でメールの返信がポストされない

最近、Discourse を AWS から DO へ移行しました https://meta.discourse.org/t/migrate-from-aws-to-digital-ocean-with-2-containers-spaces-and-2-cdns/155445/3。 ほぼすべてが正常に動作していますが、mail-receiver のみ問題が発生しています。

メールで返信し、./launcher logs mail-receiver でログを確認すると、以下のような表示がされます。

Operating environment:
RUBYGEMS_VERSION=2.7.7
MAIL_DOMAIN=reply.EXAMPLE.com
BUNDLER_VERSION=1.16.3
DISCOURSE_API_USERNAME=system
LANG=en_US.UTF-8
HOSTNAME=discourse-beta-ubuntu-s-4vcpu-8gb-nyc1-01-mail-receiver
RUBY_VERSION=2.3.7
GEM_HOME=/usr/local/bundle
PWD=/
HOME=/root
DISCOURSE_API_KEY=REMOVE
BUNDLE_PATH=/usr/local/bundle
BUNDLE_APP_CONFIG=/usr/local/bundle
TERM=xterm
BUNDLE_SILENCE_ROOT_WARNING=1
RUBY_MAJOR=2.3
SHLVL=1
RUBY_DOWNLOAD_SHA256=c61f8f2b9d3ffff5567e186421fa191f0d5e7c2b189b426bb84498825d548edb
PATH=/usr/local/bundle/bin:/usr/local/bundle/gems/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DISCOURSE_MAIL_ENDPOINT=http://discuss.EXAMPLE.com.com/admin/email/handle_mail
DOCKER_HOST_IP=172.17.0.1
_=/usr/bin/env
Delivering mail sent to reply.EXAMPLE.com to Discourse
Starting Postfix

ログでは「sent」というステータスが出力されていますが、Discourse には返信が表示されません。何か原因が思い当たりますか?これは AWS から DO へ移行してから発生するようになりました。

<22>Sep 28 15:27:24 postfix/master[1]: daemon started -- version 3.2.4, configuration /etc/postfix
<22>Sep 28 15:28:32 postfix/smtpd[82]: connect from mail-vs1-f104.google.com[209.85.217.104]
<22>Sep 28 15:28:32 postfix/smtpd[82]: B56602F7524: client=mail-vs1-f104.google.com[209.85.217.104]
<22>Sep 28 15:28:32 postfix/cleanup[89]: B56602F7524: message-id=<b1642e591e436f0abeea7d2f34a48aa9@frontapp.com>
<22>Sep 28 15:28:32 postfix/qmgr[81]: B56602F7524: from=<drew@XXXX.com>, size=21558, nrcpt=1 (queue active)
<22>Sep 28 15:28:32 postfix/smtpd[82]: disconnect from mail-vs1-f104.google.com[209.85.217.104] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
<23>Sep 28 15:28:32 receive-mail[91]: Recipient: replies+9009a1d55776827244f5c75332c2efa7@reply.EXAMPLE.com
<22>Sep 28 15:28:32 postfix/pipe[90]: B56602F7524: to=<replies+9009a1d55776827244f5c75332c2efa7@reply.EXAMPLE.com>, relay=discourse, delay=0.3, delays=0.17/0/0/0.13, dsn=2.0.0, status=sent (delivered via discourse service)
<22>Sep 28 15:28:32 postfix/qmgr[81]: B56602F7524: removed

以下のコマンドを実行してログを確認しました。不明な理由により一時的なエラーが発生しているようです。

./launcher enter mail-receiver
mailq

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
348432F7524*   11603 Mon Sep 28 16:01:06  mapmeister@XXX.net
                                         replies+429b18013a7bd110cab88a1a0f57f4cd@reply.XXX.com

95ED82F7526*   21757 Mon Sep 28 16:01:10  drew@XXX.com
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

42A2C2F6EE0    21607 Mon Sep 28 15:25:32  drew@XXX.com
                                                           (temporary failure)
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

324792F6EDF    23547 Mon Sep 28 15:23:22  drew@XXX.com
                                                           (temporary failure)
                                         replies+b42b43ae2bde8b6b951d46647f387b32@reply.XXX.com

D07792F7525    21712 Mon Sep 28 15:53:04  drew@XXX.com
                                                           (temporary failure)
                                         replies+9009a1d55776827244f5c75332c2efa7@reply.XXX.com

最新の mail-receiver コンテナのバージョンを実行していますか?以下のトピックが参考になるかもしれません:

確認すべきその他の項目:

  • mail_receiver の設定にある API キーが、Discourse の管理画面にある API キーと一致していますか?
  • /admin/email/rejected ログに拒否されたメールが表示されていませんか?
「いいね!」 2

こんにちは。ご返信ありがとうございます。

mail-receiver.yml には base_image: discourse/mail-receiver:release と記載しており、mail-receiver が古いというエラーメッセージは表示されません。mail-receiver は何度も再構築しています。

また、/admin/email/rejected に拒否されたメールの記録もありません。
ユーザー system に対してすべての権限を持つ新しい API キーを発行しました。それを mail-receiver.yml で使用しています。API が問題ではないかと考えましたが、数値が一致していることを何度か確認しました。

「いいね!」 1

気になったのですが、私が作成したAPIにアクティビティが見当たりません

コンテナ間のネットワーク接続をテストするには、以下のようにコンテナにログインしてみてください。

./launcher enter mail-receiver

その後、以下を実行します。

wget -O - $DISCOURSE_MAIL_ENDPOINT

接続が正常に機能すれば、以下のような出力が表示されます。

wget: server returned error: HTTP/1.1 404 Not Found

表示されない場合は、設定ファイル内の DISCOURSE_MAIL_ENDPOINT の値を再確認してください。

「いいね!」 1

私の無知さは異常です。大規模な愚か者の帽子に値します。

Connecting to discuss.360velo.com.com (199.59.242.154:80).

com.com…??? DISCOURSE_MAIL_ENDPOINT が間違っていました。URL に .com.com が二つあり、http ではなく https を使うべきでした。正しい方向へ導いていただき、ありがとうございます。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.