【问题标题】:PHP Sending Mail with Headers to GmailPHP将带有标题的邮件发送到Gmail
【发布时间】:2015-03-09 21:50:54
【问题描述】:

如果我不指定任何标头,PHP 中的mail() 函数在发送到 Gmail 时可以正常工作。但是,一旦我尝试添加标题,该函数仍会返回 true 但我从未收到电子邮件。 Gmail 服务器似乎拒绝递送。

这些是我正在使用的标题:

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: ' . $username . ' <' . $email . '>' . "\r\n";
$headers .= 'From: Blahblah <email@example.com>' . "\r\n";
mail($email, 'Subject', '<html><body>Body of message</body></html>', $headers);

我希望有人能指出我的缺陷?我直接从 PHP 手册中获取了大部分代码,因此可以理解我的困惑和沮丧。谢谢!

【问题讨论】:

  • “服务器拒绝投递”所以你在邮件服务器日志中若隐若现——它究竟说了什么?
  • mail()的第一个参数相当于“To:”,所以我不知道你为什么要在标题中添加它。
  • @Dagon mail() 函数返回 true,但电子邮件没有到达。这就是我知道服务器拒绝其交付的方式。
  • 不,根本不是这个意思。 mail() 的所有返回都表明本地邮件代理接受了邮件
  • 我使用谷歌应用程序,从来没有遇到过问题 50 美元/年...值得我的用户收到我的电子邮件而不是垃圾邮件。

标签: php email smtp gmail


【解决方案1】:

较大的电子邮件服务不会以这种方式传递从您自己的个人服务器发送的邮件。
由于垃圾邮件问题。所有大型邮件提供商都需要 SPF 记录、DKIM 和反向 DNS 才能接受您的邮件。

Some live/hotmail user's are not receiving html mail

就我个人而言,我更喜欢摆脱这种麻烦,并使用第 3 方邮件服务器来处理我向用户发送的所有邮件。

【讨论】:

    【解决方案2】:
    $Headers .= "From: $Yourname <$YourEmail>\r\n"; 
    

    $Headers .= 'From: '.$Yourname.'<'.$Youremail.'>'."\r\n"; 
    

    $Headers .= 'From: '.$Yourname.' <".$Youremail.">' . "\r\n";
    

    如果有这样的工作,请尝试一下?

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2016-05-29
      相关资源
      最近更新 更多