kmdalton
(Kevin Dalton)
1
我很难让 mail-receiver 容器可靠地工作。目前,它在我从个人 GMail 帐户发送的回复时按预期工作,但它会拒绝从我的雇主 Office 365 网页应用程序发送的电子邮件。我无法确定这是我这边的配置问题,还是我的雇主路由电子邮件的方式有些奇怪。
我刚开始查看 ./launcher logs mail-receiver 的输出,我认为这个摘录展示了失败传递期间事件的典型顺序:
Jan 27 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=<me@employer.tld> to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld" from client "mail-server.employer.tld[XX.XXX.XX.XX]"
Jan 27 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6
<22>Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld <22>Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
Jan 27 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120
根据第一、第二和最后一行,似乎 spf 策略守护进程不起作用。我找不到任何诊断信息来说明它为什么不起作用。我也不确定它是否必要。来自 GMail 的电子邮件似乎可以正常通过。
我正在使用 Cloudflare DNS 和 Brevo 的事务性电子邮件在 VPS 上进行自托管。
1 个赞
nathank
(Nathan Kershaw)
2
我也注意到很长一段时间以来,来自 Microsoft 365 源的不可预测的退信相当多,这非常令人恼火,因为有这么多公司使用它。到目前为止,我还没有成功地追查到源头的问题。
也许正如您所建议的,mail-receiver 存在问题;如果能对此进行调查,我将不胜感激!
1 个赞
kmdalton
(Kevin Dalton)
3
我不确定是我的配置、我雇主的配置还是邮件接收应用程序出了问题
。我非常希望能得到任何关于如何从容器中获取更多信息的建议。
1 个赞
kmdalton
(Kevin Dalton)
4
有人能告诉我如何访问来自 mail-receiver 容器的原始系统日志吗?我觉得在这行之后应该有一个 traceback:
<22>Jan 27 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld <22>Jan 27 17:20:56 policyd-spf[367]: Traceback (most recent call last):
它被删除了吗?也许是我弄错了。
This 看起来相关,但我恐怕不明白如何在实践中使用它。
这是将这些日志行全部粘贴到 ask.Discourse.com 后的响应……
Postfix 和 Policyd-SPF 问题故障排除
AI
denvergeeks:
此错误指示什么:
1 月 27 日 17:19:13 myvps-mail-receiver postfix/spawn[363]: warning: command /usr/bin/policyd-spf exit status 120
1 月 27 日 17:20:21 myvps-mail-receiver postfix/smtpd[356]: warning: problem talking to server private/policyd-spf: Connection timed out
1 月 27 日 17:20:21 myvps-mail-receiver postfix/smtpd[356]: NOQUEUE: reject: RCPT from mail-server.employer.tld[XX.XXX.XX.XX]: 451 4.3.5 <4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld>: Recipient address rejected: Server configuration problem; from=me@employer.tld to=<4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld> proto=ESMTP helo=<mail-server.employer.tld>
1 月 27 日 17:20:21 myvps-mail-receiver postfix/smtpd[356]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient “4eb16fb194e4f56c53b738dd8b3f3411@reply.my_domain.tld” from client “mail-server.employer.tld[XX.XXX.XX.XX]”
1 月 27 日 17:20:21 myvps-mail-receiver postfix/smtpd[356]: disconnect from mail-server.employer.tld[XX.XXX.XX.XX] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6
1 月 27 日 17:20:56 policyd-spf[367]: : prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=XX.XXX.XX.XX; helo=mail-server.employer.tld; envelope-from=me@employer.tld; receiver=reply.my_domain.tld
1 月 27 日 17:20:56 policyd-spf[367]: Traceback (most recent call last):
1 月 27 日 17:20:56 myvps-mail-receiver postfix/spawn[366]: warning: command /usr/bin/policyd-spf exit status 120
DiscourseHelper:
搜索
搜索内容:postfix policyd-spf exit status 120 server configuration problem connection timed out reason and solution
您的错误日志似乎表明 postfix 和 policyd-spf 存在问题。具体来说:
-
policyd-spf 的退出状态 120:
- 这通常指向
policyd-spf 配置或权限存在问题。Policyd-SPF 用于根据发件人策略框架 (SPF) 验证传入电子邮件。退出状态 120 通常表示应用程序错误或无法处理 SPF 验证要求。
-
连接到 private/policyd-spf 超时:
- 当
postfix 无法与 policyd-spf 服务通信时会发生这种情况,可能原因如下:
- 通信套接字的路径或配置无效。
policyd-spf 的 spawn 进程未正确设置或未能初始化。
-
RCPT 拒绝状态 451:
- 收件人电子邮件地址因“服务器配置问题”而被拒绝。这表明由于 SPF 验证失败,
postfix 无法接受收件人。
解决步骤:
-
检查 policyd-spf 配置:
-
服务和日志:
-
Postfix 配置:
-
测试 SPF:
-
套接字通信:
-
配置错误:
- 检查
/etc/policyd-spf/policyd-spf.conf 中的默认参数,并根据您的使用情况确认其正确性。
-
重启所有相关服务:
systemctl restart postfix
systemctl restart policyd-spf
如果您在进行配置更改后仍遇到问题,请联系您的托管提供商或 Discourse 支持,以确保服务器健康和正确的连接设置。您还可以查阅外部 SPF 问题文档或 postfix/policyd 社区论坛以获取更多信息。
这是 Perplexity.ai 的响应链接……
https://www.perplexity.ai/search/what-this-error-indicates-jan-fWurGemCTTezCPLfLNNSMg
kmdalton
(Kevin Dalton)
6
我已经根据这些回复尽力而为了,但似乎没有什么能解决这个问题。我认为最有帮助的是有人能告诉我如何将 policyd-spf 的 Python 跟踪信息内容放入日志文件中。有什么建议吗?这只是一个虚假线索吗?