Zend_Mail 不会向发件人地址发送密件抄送
Posted
技术标签:
【中文标题】Zend_Mail 不会向发件人地址发送密件抄送【英文标题】:Zend_Mail will not send bcc to sender address 【发布时间】:2011-11-20 20:24:25 【问题描述】:当我想向客户和管理员发送邮件时,我遇到了问题。
问题是,客户收到邮件,但如果 from = bcc,则 bcc 不会。有没有我错过的设置? 这可能是服务器问题,还是与 Zend 相关的问题?
我使用的示例代码:
$mail = new Zend_Mail();
$mail->setFrom( 'admin@example.com', 'Admin' )
->addTo( 'customer@anydomain.com', 'Customer' )
->setBodyText( 'Example' )
->addBcc('admin@example.com');
$mail->send();
标头是(来自 $mail->getHeaders()):
array(3)
["From"]=>
array(2)
[0]=>
string(26) "Admin <admin@example.com>"
["append"]=>
bool(true)
["To"]=>
array(2)
[0]=>
string(25) "Customer <customer@anydomain.com>"
["append"]=>
bool(true)
["Bcc"]=>
array(2)
[0]=>
string(18) "admin@example.com"
["append"]=>
bool(true)
【问题讨论】:
首先,您应该引用您的电子邮件地址,即$mail->setFrom('admin@example.com')
,如果您的问题不是拼写错误的话。
对不起,这只是错字,主要问题是为什么管理员没有收到他发送的密件抄送邮件。我会更正这个例子。
你能看到标题信息并粘贴到这里吗?这将有助于我们进一步调查。您可以通过调用$mail->getHeaders()
方法获取邮件头。
@RakeshS 我已经用标题信息更新了问题!
【参考方案1】:
我在使用Zend_Mail
向发件人地址发送密件抄送时偶然发现了这篇文章,并发现对我来说以下确实有效:
$fromName = 'admin';
$fromMail = 'sender@mail.com';
$mail = new Zend_Mail();
$mail->setFrom($fromEmail, $fromName);
$mail->addBcc($fromMail);
即使 RakeshS 帖子中链接的错误报告 http://framework.zend.com/issues/browse/ZF-8723 仍被标记为未解决。我的 Zend 版本是:
const VERSION = '1.11.12';
如果他们碰巧读到这篇文章,那么了解更新后 Zend 框架的原始发布者的问题是否也会得到解决会很有趣
【讨论】:
【参考方案2】:我的行为和你一样。如果地址被添加为密件抄送,发件人不会收到邮件。因此,这很可能是 Zend Mail 相关问题(我认为我们的服务器配置不同)。
【讨论】:
【参考方案3】:ZF 中添加了一个与此问题几乎相似的错误:http://framework.zend.com/issues/browse/ZF-8723
顺便说一句,您还可以在 Zend Mail Add Header method 的帮助下让 BCC 工作。请尝试以下解决方法:
$mail->addHeader('Bcc', 'admin@example.com');
【讨论】:
感谢 Rakesh,我已经尝试过了,但是服务器给出了 500 错误。尽管这将是一个很好的解决方法,但在我看来这不起作用。也许有另一种注入标头的方式。 我试过这样: $mail->addHeader('bcc: admin@example.com');但它会将信件发送 2 次给原始收件人(客户)。 如果你正在使用这个,那么你不应该使用addBcc()
方法。我希望你没有使用它。
看来这个版本可以正确的将邮件发送到地址,但是将标头信息放入邮件正文中: $mail->addHeader("Bcc: admin@example.com\r \n");如果我能纠正这一点,那将是完美的...... :)
可能是它认为它有些不同,你可以试试这个:$mail->addHeader('bcc: admin@example.com', '', true);
看看会发生什么?【参考方案4】:
如果您只使用不带 TO 的密件抄送收件人 阅读本文
http://framework.zend.com/issues/browse/ZF-3509
【讨论】:
请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。 请先阅读问题,在我的示例中有一个收件人。问题在于 FROM = BCC。以上是关于Zend_Mail 不会向发件人地址发送密件抄送的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHPMailer 发送时事通讯(没有密件抄送的多个蒙面收件人)
使用 PHP 向使用 Gmail API 发送的电子邮件添加密件抄送