【问题标题】:Sending mail with Phpmailer, BCC only, hiding TO header field使用 Phpmailer 发送邮件,仅密件抄送,隐藏 TO 标头字段
【发布时间】:2018-03-21 06:13:02
【问题描述】:

我正在使用 Phpmailer 通过密件抄送向多个帐户 发送电子邮件。

我不希望在标题中看到“To:”字段,但我认为它是强制性的,因为如果我省略它,我会收到此错误:

Email error: You must provide at least one recipient email address

作为一种解决方法,我在

下使用我的发件人电子邮件
$mail->addAddress (sendermail@domain.com);

但我只想发送密件抄送食谱。

是否可以这样做,或者我必须遍历所有电子邮件配方并一次发送一封?

提前谢谢你。

【问题讨论】:

    标签: php email header phpmailer bcc


    【解决方案1】:

    您可以使用未公开的收件人:;

    $mail->AddAddress("undisclosed-recipients:;");
    $mail->AddBCC(bcc@email.com); //there may be foreach loop
    

    【讨论】:

    • 谢谢,没想到!解决了。​​
    • 这是错误的。对addAddress 的调用没有任何作用,因为undisclosed-recipients:; 不是有效地址,如果您检查,您会看到它返回false。调用addBCC 是正确的方法,但这个示例在语法上无效,甚至无法编译。
    • 好的,实际上是未公开的收件人:;产生错误。但我根本无法省略 AddAddress,因为它返回此错误:Email error: You must provide at least one recipient email address
    【解决方案2】:

    PHPMailer 会自动为您处理这个问题。只是不要添加任何to 地址(即不要调用addAddress()),并添加一些密件抄送地址:

    $mail->addBCC('user@example.com');
    $mail->addBCC('user2@example.net');
    

    PHPMailer 会自动将to 标头设置为空的undisclosed-recipients:; 组。

    【讨论】:

    • 抱歉,如果我不使用 addAddress() 我会收到此错误:电子邮件错误:您必须提供至少一个收件人电子邮件地址
    • how this check works。您是否正在检查您对addBCC 的调用是否成功?
    • 是的,确实如此……但你是对的。不知道该怎么想。
    • 你做错了什么 - 我刚刚测试过它,它按描述工作。如果您在问题中发布了所有代码,这会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 2015-12-22
    • 2013-01-09
    • 2014-01-21
    • 2018-07-12
    • 2015-12-19
    • 2012-03-20
    相关资源
    最近更新 更多