配置 sendmail 以便在 Digital Ocean 上使用 Gmail 和 SMTP

配置 sendmail 以便在 Digital Ocean 上使用 Gmail 和 SMTP

我遵循了这些说明,然后我从命令行运行它。我从命令行运行测试,如下所示:

echo "Just testing my sendmail gmail relay" \
| mail -s "Sendmail gmail Relay" [email protected]

虽然有延迟,但最终会发送电子邮件......

当我从 php 调用 mail() 时,它会超时或因“504 网关超时”错误而终止。

文章中说“如果在执行上述命令后遇到替换延迟,最可能的原因是,您没有为主机配置 FQDN。检查您的日志是否有警告:”

我在日志中找不到任何东西。我已重新启动服务器,但想不出其他任何方法可以尝试...我相信主机已正确配置:

127.0.1.1 server-name
127.0.0.1 localhost

我现在不确定还能尝试什么……

有什么提示、想法或建议吗?

答案1

和 都不server-namelocalhost完全限定的;完全限定的主机名看起来像server-name.example.orglocalhost.localdomainsendmail将通过命令显示它正在使用的域名

sendmail -d0.1 < /dev/null

查找系统上的邮件日志(这取决于syslog守护进程配置)并准确查看哪个sendmail进程(或多个进程)在抱怨什么也可能会有所帮助,因为我不知道您的 PHP 代码是否sendmail像命令行示例一样经历(sendmail-> MSA-> MTA)或者它是否直接提交给MTAvia SMTP

Sendmail 很大程度上依赖于正确配置的 DNS;你可以尝试通过以下方式解决它

    FEATURE(`nocanonify', `canonify_hosts')
    define(`confDIRECT_SUBMISSION_MODIFIERS', `C')

submit.mc配置中,尽管这可能会破坏一些东西(如果没有日志,我不知道这是否是问题的根源)。您可能还需要设置伪装,以便在将地址发送到 gmail 之前对其进行适当的标准化。

另一个选择是通过类似的方式来发送邮件ssmtp

相关内容