【问题标题】:PHP Mail() fails with "User <user@example.com>", fine with "<user@example.com>"PHP Mail() 因“用户 <user@example.com>”而失败,对“<user@example.com>”很好
【发布时间】:2012-06-07 15:58:46
【问题描述】:

问题从 Magento 不发送邮件开始,在调试时我遇到了这个问题:

使用 PHP 邮件功能时,如果 $to 包含名称则失败。

<?php
 $to = '<myname@gmail.com>'; //Works fine
 $to = 'myname@gmail.com'; //Works fine

 $to = 'Myname <myname@gmail.com>'; // This doesn't work! No mail and getting "delivery failed";

 $subject = "Test";
 $body = "How are you?";

 if (mail($to, $subject, $body)) {
   echo("Message successfully sent!");
 } else {
  echo("Message delivery failed...");
 }
?>

这是一个托管帐户,因此我无权访问 sendmail 或任何其他配置。

【问题讨论】:

  • 您可以在php.net/manual/en/function.mail.php 的示例中添加确切的名称,请参阅“发送 HTML 电子邮件”示例和“// 附加标头”部分。那应该可以。
  • 是的,但我不能。这是在 Zend 的上下文中使用的,它在 Magento 的上下文中。 $result = mail($this->recipients, $this->_mail->getSubject(), $this->body, $this->header);所以首先我收到它已经形成为“Name Secondname
  • 我真的不明白原因:我只是在 Linux+Apache 环境中对其进行了测试,而您的示例(使用 'Myname &lt;myname@gmail.com&gt;')可以正常工作 - 它应该(作为这种形式符合 RFC 2822)!我认为这可能是您服务器上的错误配置(例如sendmail)。你用的是什么服务器?

标签: php email rfc2822


【解决方案1】:

尚未找到解决此特定问题的方法,但找到了使用 SMTP/Google Mail/Apps 的 Magento 插件。工作正常,正在发送邮件。

http://www.magentocommerce.com/magento-connect/aschroder-com-smtp-pro-email-free-and-easy-magento-emailing-for-smtp-gmail-or-google-apps-email.html

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 2019-07-23
    • 2019-06-12
    • 1970-01-01
    • 2020-06-04
    • 2018-04-21
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多