email - 当 sendmail 转发电子邮件时,接收服务器有时会给出“服务不可用”
问题描述
我为客户托管一个域;域的 A 记录指向我的 IP 地址。当电子邮件到达他域中的某个人时,他只想将其转发给他的 ISP (charter.net)。这在大约 90-99% 的时间里都有效,但一天几次,charter.net 拒绝了“服务不可用”的消息。我们尝试转发到他的 gmail 帐户,同样的事情 - 它通常可以工作,但有时 gmail 会返回“服务不可用”。发生这种情况时,我的 sendmail 显然放弃了。
我怀疑不是收件人的服务器正常运行时间有问题。它拒绝它认为可疑的电子邮件。
我最近为我的服务器的规范名称添加了 SPF 和 DKIM 记录,但我仍然从charter.net 获得“服务不可用”。现在 sendmail DKIM 对源自我的服务器的任何邮件进行签名,但它不会对它转发的电子邮件进行签名。我还没有找到一种方法来配置 opendkim 来做到这一点。但是我已经看到 mandrillapp.com 放弃了它转发的电子邮件;标头包括带有 d=originaldomain.com 的 DKIM 签名和带有 d=mandrillapp.com 的第二个 DKIM 签名。
所以我想我的问题是,
1) 有人真的知道为什么我的服务器从最终收件人那里得到“服务不可用”吗?
2) 我可以配置 opendkim 来签署我的服务器转发的电子邮件吗?
3) 为我客户的域设置 SPF 和/或 DKIM 记录有什么好处吗?
谢谢,鲍勃
附录:对于转发,我在 /etc/mail/virtusertable 中有这样的条目:
a@clientdomain.com a@charter.net
对于 DKIM,我的 sendmail.mc 中有这个:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
我在 /etc/mail/local-host-names 中也有 clientdomain.com,正如我上面所说,clientdomain.com 的 A 记录解析为与 mydomain.com 相同的 IP。
解决方案
经典的 sendmail 通过别名重定向,~/.forward 文件和virtusertable保持不变的原始信封地址(它MAIL FROM
在 SMTP 会话期间的命令中使用)。它可能会使您的转发打破原始发件人域的 SPF 记录设置的限制。
“许多地址”重定向的可能修复:
- SRS
- 自定义 sendmail.cf 修复
有关更多详细信息,请访问更合适的站点serverfault.com。
推荐阅读
- exchange-server - 通过 API 在 Exchange 中创建共享邮箱
- varnish - Varnish Pass - 请求合并
- regex - 正则表达式提取、删除重复项并与 Google 表格中的管道连接
- javascript - 通过 javascript 从 NFS 位置下载 zip 文件
- html - 如何发送用户单击其中一个按钮的发布请求,并告诉服务器哪个按钮
- python - selenium webdriver geckodriver 出错
- laravel - 插入数据时出现“不正确的整数值”[Eloquent]
- ios - WatchKit:手表上的高度计返回 iPhone(不是手表)的高度
- python - 如何在 github 工作流的下一步中设置和访问 python 代码的响应
- python - 使用一个数据帧中的标头从第二个数据帧中查找行索引