0

当 to 名称设置为同时包含外来字符(如“å”)和逗号(“,”)的内容时,Zend Mail 将引发异常(因为 mail() 返回 false)。使用下面的代码重新生成。

$mail = new Zend_Mail('utf-8');
$mail
    ->setFrom('info@myhost', 'My company')
    ->setSubject('hi')
    ->addTo('MYEMAIL@SOMEHOST.COM', 'aå,a')
    ->setBodyHtml('<p>asd</p>')
    ->send();

如果我将 addTo 调用更改为以下内容,则不会发生错误。

->addTo('znarkus@gmail.com', 'aåa')
->addTo('znarkus@gmail.com', 'a,a')
->addTo('znarkus@gmail.com', 'aa')

奇怪的是,即使它抛出异常(“无法发送邮件”),邮件还是被传递。我正在运行最新的 Zend Mail (1.9.5?)。请停下来!

4

3 回答 3

1

这只是 Zend_Framework 中的一个错误:

http://framework.zend.com/issues/browse/ZF-10792

电子邮件的名称部分允许使用逗号:

“史密斯,弗兰克”

这没关系

于 2011-03-02T11:25:51.113 回答
0

问题是 $to 的 mail() 函数接受

User <user@example.com>, Another User <anotheruser@example.com>

我猜 PHP 在内部用逗号分隔字符串以分隔多个收件人,但您只提供一个电子邮件地址。

如果您认为这是 Zend_Mail 或 PHP 错误,您应该将其发布到相应的问题跟踪器。

于 2009-11-17T11:42:07.547 回答
0

逗号是邮件头的“收件人”部分中的保留文字(但您永远不应该使用它),用于分隔不同的目标。即使您的“第一封”邮件被发送,恕我直言,它会创建一个像这样的标题:

aå, a <znarkus@gmail.com>

使用此标头,我假设您的 mta 尝试发送两封邮件:一封发送给 aå,但失败(严重),另一封发送给 znarkus@gmail.com,这应该会成功。您可以尝试查看邮件标题以确认此理论。

于 2009-11-17T13:32:38.493 回答