更新: 現在の main ブランチをテストしました
現在の main ブランチをローカルでビルドし、別の問題が見つかりました。
Docker Hub の旧 release イメージでは、まだ旧来の fast-rejection コードが実行され、RCPT の段階で以下のエラーが発生します:
450 4.7.1 Recipient address rejected: Internal error, API request failed
しかし、現在の main ブランチでは、smtp_should_reject / fast-rejection の実装がすでに削除されています。main をビルドすると、Postfix は代わりに以下で失敗します:
warning: connect to private/policy: No such file or directory
451 4.3.5 Recipient address rejected: Server configuration problem
これは Dockerfile に残っている2つの参照に起因していることが特定できました:
check_policy_service unix:private/policy
ポリシーサービス自体は削除されていますが、smtpd_recipient_restrictions がまだそのソケットを参照しています。
smtpd_recipient_restrictions から unix:private/policy を削除し、イメージを再ビルドしたところ、受信 SMTP メールが正常に受け入れられるようになりました。
Global API Key に切り替えた後、Discourse への配信も成功しました:
dsn=2.0.0, status=sent (delivered via discourse service)
したがって、2つの別々の問題があるようです:
- 公開されている
discourse/mail-receiver:releaseイメージは古く、まだ旧来の fast-rejection 実装が含まれています。 - 現在の
mainブランチではその実装が削除されていますが、Dockerfileはまだ Postfix がunix:private/policyを使用するよう設定されています。
また、Granular API Key に関する別個の問題もある可能性があります: receive emails のスコープに限定されたキーでは /admin/email/handle_mail から HTTP 404 が返されましたが、Global API Key では HTTP 200 が返されました。
必要であれば、Dockerfile 内の古い private/policy 参照2つに対する PR を提出できます。