【发布时间】: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 <myname@gmail.com>')可以正常工作 - 它应该(作为这种形式符合 RFC 2822)!我认为这可能是您服务器上的错误配置(例如sendmail)。你用的是什么服务器?