我正在使用PHP的mail()函数,但我无法向大多数服务器发送邮件。 它可以毫无问题地将邮件发送到GMAIL ......可能其他服务器只是拒绝我的邮件......我设置了我需要的邮件服务器的MX记录......我将我的PTR记录更改为mail.example.com ......但是仍然无法发送邮件......我怎么能解决这个问题呢?
此外,邮件的发件人显示为“www-data @ localhost”
(我正在使用Digital Ocean,Ubuntu 12.04)
我在日志文件中收到的错误:
我的不合格主机名(localhost)未知;睡觉重试localhost sendmail [11620]:无法限定我自己的域名(localhost) - 使用短名称(我在mail.err中得到的错误);并在日志文件中显示有关验证的一些错误,我是否需要安装有关STARTTLS = client
的smt
答案 0 :(得分:0)
当使用mail()函数时,你可以设置SENDER以及从/到等等。
即
mail($to, $subject, $body, $headers, "-f ".$webmaster);
重要的是,"-f ".$webmaster
允许您覆盖默认的' www-data @ localhost'作为失败邮件的BOUNCE地址(信封发件人)..
大多数邮寄者都会拒绝邮寄地址无效的电子邮件。
许多托管服务器都不允许您设置-f值...它设置了真正的发件人'当然这是发送垃圾邮件的经典方式..
尝试使用-f,如果失败则更改您的托管公司。 或者让自己成为虚拟私人服务器。
答案 1 :(得分:0)
我遇到了同样的问题,你可以做的一件事是:打开一张带有数字海洋支持的门票。默认情况下,新帐户有一个块来发送电子邮件(以避免垃圾邮件发送者)。他们迅速解决并大大改善。
另一件事是:检查您的邮件信誉。您可以找到一些可以提供帮助的网站,例如mail-tester.com - 该网站提供了一个报告,其中包含解决问题的潜在问题。