【发布时间】:2026-02-12 08:40:01
【问题描述】:
我在尝试配置我的服务器以便可以通过 PHP 发送电子邮件时遇到了很多麻烦。我已经阅读了我能找到的所有教程,但似乎没有什么很清楚,而且这一切都假设你对这类事情有丰富的背景知识。
服务器正在运行带有 WHM/Cpanel 和 Apache 的 CentOS。除了传出的电子邮件外,一切正常。 mail() 函数返回 true 并且没有错误,但也没有发送电子邮件。该代码在较旧的服务器上运行良好,我也尝试了一个行变体,所以我知道这不是代码的问题。我使用 WHM 工具仔细检查了我的 SMTP 服务器是否正在运行(Exim),并重新启动它以取得良好的效果,但没有成功。
我使用 Cloudflare 作为我的 DNS 服务器,使用 Google Apps 作为电子邮件。 Google Apps 电子邮件工作正常。这些事情中的任何一个都会影响它吗?如果我想使用 Google Apps 并直接从我的服务器发送电子邮件,是否需要进行一些特别的设置?我需要添加 DNS 记录吗?老实说,我什至不知道从哪里开始,而且我读过的任何内容都没有一点帮助。我什至不知道如何测试我的 SMTP 服务器以查看它是否正常工作。
如果我没有提供任何需要的信息,请询问我,我会提供。
[编辑] 我检查了我的垃圾邮件文件夹,里面没有新邮件。这是我尝试发送电子邮件时 Exim 日志中显示的内容。我已经编辑了域。
2013-05-13 19:20:34 cwd=/var/spool/exim 2 args: /usr/sbin/exim -q
2013-05-13 19:20:34 Start queue run: pid=9766
2013-05-13 19:20:34 End queue run: pid=9766
2013-05-13 19:43:13 cwd=/home/admin/public_html/portal 3 args: /usr/sbin/sendmail -t -i
2013-05-13 19:43:13 1Uc2Of-0002eC-Go <= admin@svr1.example.ca U=admin P=local S=533 T="New Event/Hazard Report" for jake@example.ca
2013-05-13 19:43:13 cwd=/var/spool/exim 3 args: /usr/sbin/exim -Mc 1Uc2Of-0002eC-Go
2013-05-13 19:43:13 1Uc2Of-0002eC-Go SMTP connection outbound 1368488593 1Uc2Of-0002eC-Go example.ca jake@example.ca
2013-05-13 19:43:15 1Uc2Of-0002eC-Go => jake@example.ca R=lookuphost T=remote_smtp H=aspmx.l.google.com [74.125.142.26] X=TLSv1:RC4-SHA:128
2013-05-13 19:43:15 1Uc2Of-0002eC-Go Completed
【问题讨论】:
-
如果 php mail() 返回 true,则它已成功将外发电子邮件移交给系统 MTA/SMTP 服务器。检查该服务器的(postfix?sendmail?exim?)日志,看看之后电子邮件会发生什么。
-
您确定实际上没有发送邮件吗?它可能最终进入垃圾邮件文件夹。如果您还没有这样做,我建议您发送到各种域的电子邮件地址,看看它是否能通过它们中的任何一个。
-
检查你的邮件日志,通常在 /var/log/maillog 他们会告诉你发生了什么
标签: php email google-apps whm exim