Linux 发出的邮件无法送达

Linux 发出的邮件无法送达

当电子邮件被发送到由我的机器托管的域时,我似乎无法通过我的 php 脚本或通过我的 Centos 5.5 LAMP 服务器上的 linux 控制台发送邮件。

我认为这与内部的电子邮件路由有关,或者与盒子使用的 DNS 服务器未报告正确的 MX 记录有关。

基本上我的邮箱不托管任何邮件,所有邮件都托管在 Google 应用上。我的名称服务器由第三方提供商托管,我正在使用 webmin。Webmin 无法识别第三方提供商的设置。

我不确定如何修复这个问题。以前,当我在 cpanel 服务器上遇到这个问题时,我会编辑remotedomainslocaldomains文件,将域名从一个文件移动到另一个文件,这样就可以解决问题。

我需要提供哪些信息来帮助人们查明问题所在?

谢谢

答案1

如果您运行sendmail -bt(sendmail 的测试模式)然后输入,$=w您将看到列出您有问题的域。这是因为 sendmail 认为发送到所述域的邮件必须在本地投递,而不是发送到 Google。因此,您需要做的是在两个地方修改您的 sendmail.mc(如果不存在,则添加它们)。

首先在 LOCAL_CONFIG 部分添加一个查找域的最佳 MX 的地图:

LOCAL_CONFIG
Kbestmx bestmx -T.TMP

接下来,在 sendmail 选择传送代理的 LOCAL_RULE_0 部分中,使用上面的地图将邮件路由到 Google:

LOCAL_RULE_0
R $* < @ example.com. > $*           $#esmtp $@ [$(bestmx example.com. $)] $: $1 < @ example.com. > $2
  • 注 1:将 example.com 替换为相关域名

  • 注意 2:不要复制粘贴 sendmail.mc 中的规则。输入规则时,规则左侧和右侧不要用空格分隔,而是用制表符分隔。

  • 注意 3:编辑完 sendmail.mc 后,必须构建 sendmail.cf,然后重新启动 sendmail。我不知道在 CentOS 中如何完成此操作。我运行 Debian 并执行sendmailconfig

您可以在以下位置阅读有关问题的更详细解释我的博客文章在这里

相关内容