无法通过PHP发送邮件,即使我设置了MX记录

时间:2014-03-12 04:33:43

标签: php email digital-ocean mx-record pointers

我正在使用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

2 个答案:

答案 0 :(得分:0)

当使用mail()函数时,你可以设置SENDER以及从/到等等。

mail($to, $subject, $body, $headers, "-f ".$webmaster);

重要的是,"-f ".$webmaster允许您覆盖默认的' www-data @ localhost'作为失败邮件的BOUNCE地址(信封发件人)..

大多数邮寄者都会拒绝邮寄地址无效的电子邮件。

许多托管服务器都不允许您设置-f值...它设置了真正的发件人'当然这是发送垃圾邮件的经典方式..

尝试使用-f,如果失败则更改您的托管公司。 或者让自己成为虚拟私人服务器。

答案 1 :(得分:0)

我遇到了同样的问题,你可以做的一件事是:打开一张带有数字海洋支持的门票。默认情况下,新帐户有一个块来发送电子邮件(以避免垃圾邮件发送者)。他们迅速解决并大大改善。

另一件事是:检查您的邮件信誉。您可以找到一些可以提供帮助的网站,例如mail-tester.com - 该网站提供了一个报告,其中包含解决问题的潜在问题。