我正在尝试通过PHP mail()函数发送邮件,据我所知,使用sendmail来发送邮件。现在我的问题是mail()返回true但是我的邮箱中甚至没有邮件的痕迹(是的,我也检查了垃圾邮件)。
所以我试图从终端手动发送一些邮件,但问题仍然存在。 sendmail不会给我一个错误,除了无法确定域错误,我通过将我的开发机器的域添加到/ etc / hosts并将其与127.0.0.1相关联来修复。
andreas@Andreas-PC-Ubuntu:~$ sendmail xxxxxxx@xxxxxxx.com
Test
.
andreas@Andreas-PC-Ubuntu:~$
除了没有错误,sendmail会在/var/log/mail.log中记录邮件已成功发送:
Apr 7 01:16:21 Andreas-PC-Ubuntu sendmail[11759]: q36NGIfD011759: from=andreas, size=5, class=0, nrcpts=1, msgid=<201204062316.q36NGIfD011759@home.hagenz.com>, relay=andreas@localhost
Apr 7 01:16:21 Andreas-PC-Ubuntu sm-mta[11760]: q36NGL1J011760: from=<andreas@home.hagenz.com>, size=299, class=0, nrcpts=1, msgid=<201204062316.q36NGIfD011759@home.hagenz.com>, proto=ESMTP, daemon=MTA-v4, relay=ip6-localhost [127.0.0.1]
Apr 7 01:16:21 Andreas-PC-Ubuntu sendmail[11759]: q36NGIfD011759: to=xxxxxxx@xxxxxxx.com, ctladdr=andreas (1000/1000), delay=00:00:03, xdelay=00:00:00, mailer=relay, pri=30005, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q36NGL1J011760 Message accepted for delivery)
所以,是的,有什么建议吗?
答案 0 :(得分:4)
您确定收件人SMTP服务器没有丢弃(或至少是灰名单)您的邮件吗?邮件服务器将非来自识别的MX服务器的邮件视为垃圾邮件非常常见。
sendmail是否配置为使用SMTP中继/ smarthost?如果不是,如果您将其配置为使用您的ISP,雇主或其他托管服务提供商的服务器会发生什么?
答案 1 :(得分:1)
您是否在php.ini文件中设置了配置?
当我在我自己的服务器上设置php时(我在服务器2003上运行IIS,使用Exchange发送电子邮件),我必须编辑php.ini文件来配置邮件功能。
只需取消注释并为SMTP
部分指定我的邮件服务器。
[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = #mymailserver# ; http://php.net/smtp-port smtp_port = 25
您可能需要执行相同或类似操作,具体取决于您的Web服务器环境