【问题标题】:Zend_Mail will not send bcc to sender addressZend_Mail 不会向发件人地址发送密件抄送
【发布时间】: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-&gt;setFrom('admin@example.com'),如果您的问题不是拼写错误的话。
  • 对不起,这只是错字,主要问题是为什么管理员没有收到他发送的密件抄送邮件。我会更正这个例子。
  • 你能看到标题信息并粘贴到这里吗?这将有助于我们进一步调查。您可以通过调用$mail-&gt;getHeaders()方法获取邮件头。
  • @RakeshS 我已经用标题信息更新了问题!

标签: zend-framework email zend-mail


【解决方案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-&gt;addHeader('bcc: admin@example.com', '', true); 看看会发生什么?
      【解决方案4】:

      如果您只使用不带 TO 的密件抄送收件人 阅读本文

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

      【讨论】:

      • 请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。
      • 请先阅读问题,在我的示例中有一个收件人。问题在于 FROM = BCC。
      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 2015-12-19
      • 2018-04-07
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2013-06-08
      • 2015-10-01
      相关资源
      最近更新 更多