このディレクトリで新しいコンテナー定義を作成するには、どうすればよいですか!?
その直後に表示されるコマンドを実行することで。厳密には、そのディレクトリ内にファイルを作成しているのではなく、app.yml と同じように containers サブディレクトリ内に作成しています。
ありがとうございます。最初はうまくいっていないようでしたが、テキストエディタで以下の状態になりました。
これには問題があるようです。./launcher logs mail-receiver を実行すると、テキストエディタで指定したドメインではなく、discourse_base_url=https://discourse.example.com と報告されます。
mail-receiver のブートストラップを再構築/再起動しましたが、正しいドメインに変更されていません。
ちょっと困っています。アドバイスをいただけますか?
root@JEN /var/discourse # ./launcher start mail-receiver
x86_64 arch detected.
starting up existing container
+ /usr/bin/docker start mail-receiver
Error response from daemon: driver failed programming external connectivity on endpoint mail-receiver (721279d807e22a80580f2357fae40cc): Error starting userland proxy: listen tcp4 0.0.0.0:25: bind: address already in use
Error: failed to start containers: mail-receiver
そして…
root@JEN /var/discourse # sudo lsof -i tcp:25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 4400 root 13u IPv4 24419 0t0 TCP *:smtp (LISTEN)
master 4400 root 14u IPv6 24420 0t0 TCP *:smtp (LISTEN)
試したこと…
root@JEN /var/discourse # netstat -nlp | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4400/master
tcp6 0 0 :::25 :::* LISTEN 4400/master
そして…
root@JEN /var/discourse # ps j 4400
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1 4400 4400 4400 ? -1 Ss 0 0:02 /usr/lib/postfix/sbin/master -w
オンラインでコンテナを停止し、プロセス(プロセス4400?)をキルするという指示を見つけました。
これは安全で、問題を解決しますか?
mail-receiver.yml ファイルのポート25を別のポートに変更する必要がありますか(または、すべきですか、すべきではありませんか)?
postfixをインストールしていて、それを削除する必要があるのではないでしょうか?
ポートは変更できません。それを使用しているプロセスを停止する必要があります。再起動すると、どちらのプロセスが先に起動するかの競争になるため、単に終了させるだけではうまくいきません。
私もそう思っていました。どうやってそこに入り込んだのか想像もつきませんが、取り除いてみます。そうでなければ、問題なく動作しているように見えるGmailを使用できます。
フォーラムを新しい環境に移行したばかりで、その結果、メール受信者を再インストールしました。以前インストールしていたものよりも新しいバージョンのようです。YML設定が少し変更され、DISCOURSE_MAIL_ENDPOINTの代わりにDISCOURSE_BASE_URLが使用されています。YMLファイルの内容はその変更を反映していますが、このスレッドの冒頭の指示を更新する必要があります。
また、メールがバウンス/拒否されたときに、次のエラーが発生しています…
Jun 08 11:50:42 mail-receiver postfix/smtp[117]: fatal: unknown service: smtp/tcp
Jun 08 11:50:42 mail-receiver postfix/smtp[118]: fatal: unknown service: smtp/tcp
Jun 08 11:50:43 mail-receiver postfix/qmgr[101]: warning: private/smtp socket: malformed response
Jun 08 11:50:43 mail-receiver postfix/qmgr[101]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description
Jun 08 11:50:43 mail-receiver postfix/master[1]: warning: process /usr/lib/postfix/sbin/smtp pid 117 exit status 1
Jun 08 11:50:43 mail-receiver postfix/master[1]: warning: /usr/lib/postfix/sbin/smtp: bad command startup -- throttling
Jun 08 11:50:43 mail-receiver postfix/qmgr[101]: warning: private/smtp socket: malformed response
Jun 08 11:50:43 mail-receiver postfix/master[1]: warning: process /usr/lib/postfix/sbin/smtp pid 118 exit status 1
Jun 08 11:50:43 mail-receiver postfix/qmgr[101]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description
有効なメッセージは正しく処理されているようです。以前のバージョンのメール受信者では、最近のログファイルから確認した限りでは、これらのエラーは発生しませんでした。少し調査したところ、https://blog.badgerops.net/smtp-socket-malformed-response-on-a-fips140-2-sytstem/ にたどり着きました。
mail-receiver.yml ファイルに以下を追加すると、問題が解決するようです。
## Fix smtp errors
POSTCONF_smtp_tls_fingerprint_digest: sha256
POSTCONF_smtpd_tls_fingerprint_digest: sha256
DMARCサポートを追加したことをここに投稿します。これは discourse/mail-receiver:with-dmarc イメージを介して行われます。詳細については、OPの Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver を参照してください。
既存トピックに2件の投稿がマージされました: Mail-receiver relay access denied
トラブルシューティングセクションに追記したいことがあります。
Mail-Receiver(ダイレクトデリバリー)は複数のドメインで機能していましたが、Gmailユーザーからのメッセージを受信できませんでした。原因がわかりませんでした。ログにはGoogleからの接続/切断以外何もありませんでした。すべて正常に見え、オンラインツールもDNSが正常であることを確認しました。
最終的に、DNSにSMTP TLSレポートレコードを作成しました。例:
_smtp._tls.discourse.mydomain.com TXT v=TLSRPTv1;rua=mailto:me@wherever.com
数時間後、Google(Gmail)から、現在のMXレコードを反映していないmta-stsポリシーをキャッシュしていたことを示すレポートが送信されました。更新を引き起こすべき私の更新された_mta-sts DNSレコードを無視したように見えたため、Googleがそのキャッシュされたポリシーを1週間保持するのではないかと心配しました。
その後すぐに、何もせずに、バックアップされていたすべてのGmailがDiscourseに流れ込み始めました。このレポートは、Googleの視点から問題を理解するのに役立ち、メッセージが流れ始めたときに頭を悩ませるのを避けることができました。
SMTP TLSレポートはまれに発行されるため、辛抱強く待ってください。
ガイドにはMTA STSの設定について何も記載されていないことを考えると、それを設定しない99.999%以上のユーザーを混乱させるだけではないでしょうか?
私の場合は、単一のDNSレコードを追加するだけで問題が明らかになりました。ガイドにはすでにMail-Receiverのインストール用にDNSレコードを作成するように指示されているため、トラブルシューティングセクションに最後の手段としてレコードを追加するように提案しても、無理はないと思います。しかし、あなたの投稿には「いいね」が2つあり、私の投稿には1つもないので、それが限界かもしれません。
それは良い知らせですね。Gmailは一般的な送信者なので、ガイドに追加するのに良い情報だと思います。
ガイドでは、MTA-STSを設定するためではなく、mail-receiverを機能させるためにDNSレコードを作成するように指示しています。したがって、ガイドに従っているユーザーは、あなたが経験したような問題に遭遇することはありません。そのため、ガイドを余計な手順で複雑にする必要はありません。
一般的に、mail-receiverはGmailから送信されたメールを新しいトピックとして処理できますか?
これは重大な問題のようですが、原因が孤立したインシデントである場合はそうではありません。
結論として、マットが正しいということになりました。私の環境では、ドメインの通常のメールがMail In a Box (https://mailinabox.email/) によって処理されており、厳格なMTA-STSポリシーを要求し、Gmailがそのポリシーを強制するため、MTA-STSに対応する必要がありました。デフォルトでは、ポリシーはMail-Receiverの設定と競合する可能性があります。ほとんどのドメインにはポリシーがありません。ドメインにポリシーがある場合、それは以下で確認できます。
https://mydomain.com/.well-known/mta-sts.txt
私の動作中のポリシーは以下のようになっています…
version: STSv1
mode: none
mx: mail.mydomain.com
mx: discourse.mydomain.com
max_age: 86400
もう少し作業をしてから、“mode: none” を “mode: enforce” にアップグレードしたいと考えています。
Discourse をコマンドラインで再構築する際、mail-receiver コンテナは自動的に再構築されますか、それとも別途行う必要がありますか?教えていただけますでしょうか。よろしくお願いします。
いいえ、指示された場合にのみ再構築されます。メール受信コンテナを頻繁に再構築する必要はありません。
これは間違いなく私の役に立ちました:)
