【问题标题】:Phpmailer AddBcc not workingPhpmailer AddBcc 不工作
【发布时间】:2021-07-26 20:55:51
【问题描述】:

我正在使用 phpmailer 发送电子邮件,除了密件抄送和抄送详细信息未显示邮件外,收件人可以正常接收邮件。有人可以提出解决方案 . 代码是

require_once("PHPMailer_v5.1/class.phpmailer.php");
require_once("PHPMailer_v5.1/language/phpmailer.lang-en.php");              
$mailer = new PHPMailer();
$mailer->IsSMTP();              
$mailer->SMTPAuth = true;                   
$mailer->SMTPSecure = "tls";
$mailer->Host = 'smtp.gmail.com';
$mailer->Port = 587;                
$mailer->Username = "myuserid";
$mailer->Password = "mypassword";
$mailer->FromName = $fromname;
$mailer->From = "myuserid";             
$mailer->AddAddress("to@gmail.com",$toname);                
$mailer->Subject = $subject;                
$mailer->Body =$content;                
$mailer->AddCC("something@gmail.com", "bla");               
$mailer->AddBCC("foo@gmail.com", "test");
if(!$mailer->Send())
{
echo "Message was not sent";
}
else
echo "mail sent";

【问题讨论】:

  • 请检查已编辑的问题
  • 不是 AddBCC 吗?另外 - 你不清楚:密件抄送收件人是否收到电子邮件?
  • AddBCC 还是不行,bcc 收件人也会收到邮件

标签: php phpmailer


【解决方案1】:

用作

$mailer->AddBCC("foo@gmail.com", "test");
$mailer->AddCC("something@gmail.com", "bla");

【讨论】:

  • 还是不行...邮件已收到,但密件抄送收件人无法查看密件抄送详情
【解决方案2】:

您永远不会看到密件抄送的详细信息。这就是他们是密件抄送详细信息的目的。即使是密件抄送的收件人也不会在收件人中看到自己的姓名。

PS:你注意到你写的是addBCC而不是AddBCC(大写A)?

【讨论】:

  • 我认为bcc收件人可以查看所有收件人详细信息,但是这里bcc收件人无法查看bcc详细信息,只有'to details'可以查看
  • 总是如此。密件抄送详细信息始终隐藏,当您自己是密件抄送收件人时也是如此。只需从您最喜欢的客户那里发送一封邮件,您就会看到。
  • 类方法不区分大小写。大写 A 没有区别。
【解决方案3】:

来自phpMailer函数参考:

添加“密件抄送”地址。注意:此功能适用于 win32 上的 SMTP 邮件程序,不适用于“邮件”邮件程序。

这可能会导致您的问题。

【讨论】:

    【解决方案4】:

    PHPMailer not sending CC or BCC

    老问题,但我最终在这里寻找答案。刚刚在别处了解到 AddCC 和 AddBCC 这些功能仅适用于 win32 SMTP

    尝试使用:

    $mail->addCustomHeader("BCC: mybccaddress@mydomain.com"); 见http://phpmailer.worxware.com/?pg=methods

    希望这对某人有所帮助,干杯!

    【讨论】:

    • 另一种写法是$mail->addCustomHeader('BCC', 'mybccaddress@mydomain.com');$emails = array('address1@mydomain.com', 'address2@mydomain.com'); $mail->addCustomHeader('BCC', implode(',', $emails));
    【解决方案5】:

    添加密件抄送

    $email->addBCC('my@email.com', 'My Name');
    

    参见 PHPMailer.php(当前版本 6.0.5)第 934 行 (https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L934):

    /**
     * Add a "BCC" address.
     *
     * @param string $address The email address to send to
     * @param string $name
     *
     * @return bool true on success, false if address already used or invalid in some way
     */
    public function addBCC($address, $name = '')
    {
        return $this->addOrEnqueueAnAddress('bcc', $address, $name);
    }
    

    【讨论】:

      【解决方案6】:

      密件抄送永远不会显示;仅限 TO 和 CC

      BCC=密件抄送

      【讨论】:

        【解决方案7】:

        这是最新版本的一个工作示例,在 Office 365 上,我使用它从共享文件夹发送电子邮件...

        <?
            use PHPMailer\PHPMailer\PHPMailer;
            use PHPMailer\PHPMailer\Exception;
            require_once('./phpmailer/Exception.php');
            require_once('./phpmailer/PHPMailer.php');
            require_once('./phpmailer/SMTP.php');
            //*  Working Example As Of 09/21/2019  - Sends From Shared Mailbox With Mailbox Member
            function SendO365EmailTLS($options)
            {
                $from =          isset($options['from'])          ? $options['from']          : false;
                $recipients =    isset($options['recipients'])    ? $options['recipients']    : false;
                $ccRecipeints =  isset($options['ccrecipients'])  ? $options['ccrecipients']  : [];
                $bccRecipients = isset($options['bccrecipients']) ? $options['bccrecipients'] : [];
                $attachments =   isset($options['attachments'])   ? $options['attachments']   : [];
                $credentials =   isset($options['credentials'])   ? $options['credentials']   : false;
                $subject =       isset($options['subject'])       ? $options['subject']       : '';
                $body =          isset($options['body'])          ? $options['body']          : '';
                if(!$from)        throw new Exception('Cannot send email with blank \'from\' field');
                if(!$recipients)  throw new Exception('Cannot send email, no recipients specified!');
                if(!$credentials) throw new Exception('Cannot send email, credentials not provided!');
                $mail = new PHPMailer;
                foreach($recipients as $recipient)       $mail->addAddress(   $recipient[   'email'],   $recipient['name']);
                foreach($ccRecipeints as $ccRecipient)   $mail->addCC(        $ccRecipient[ 'email'], $ccRecipient['name']);
                foreach($bccRecipients as $bccRecipient) $mail->addBCC(       $bccRecipient['email'],$bccRecipient['name']);
                foreach($attachments as $attachment)     $mail->addAttachment($attachment[  'path' ],  $attachment['name']);
                $mail->setFrom($from['email'], $from['name']);
                $mail->Username = $credentials['username'];
                $mail->Password = $credentials['password'];
                $mail->Host = 'smtp.office365.com';
                $mail->Subject = $subject;
                $mail->SMTPSecure = 'tls';
                $mail->Body    = $body;
                $mail->SMTPAuth = true;
                $mail->isHTML(true);
                $mail->Port = 587;
                $mail->isSMTP();
                $success = $mail->send();
                return $success;
            }
        //  $options = ['from'=>          ['email'=>'', 'name'=>''],
        //              'recipients'=>   [['email'=>'', 'name'=>'']],
        //              'ccrecipients'=> [['email'=>'', 'name'=>'']],
        //              'bccrecipients'=>[['email'=>'', 'name'=>'']],
        //              'attachments'=>  [['path'=>'./attachments/file1.jpg','name'=>'1.jpg'],
        //                                ['path'=>'./attachments/file2.jpg','name'=>'2.jpg'],
        //                                ['path'=>'./attachments/file3.jpg','name'=>'3.jpg']],
        //              'credentials'=>   ['username'=>'','password'=>''],
        //              'subject'=>        'Email Subject Line',
        //              'body'=>           '<h1>Email Body</h1><p>HTML!!!</p>'];
        //  $success = SendO365EmailTLS($options);
        //  echo $success ? 'Email Sent':'Email Not Sent';
        //  die();
        

        【讨论】:

          【解决方案8】:

          $mail->addCC('cc@example.com');//碳拷贝 $mail->addBCC('bcc@example.com');//盲抄送

          请阅读本文 https://github.com/PHPMailer/PHPMailer

          【讨论】:

            【解决方案9】:

            要操作 clausla BCC AddCC 必须先于 nuloy 隐藏电子邮件将到达您的收件人否则会发生 nuna 例子:

            $ mail-> AddCC ("");
            $ mail-> AddBCC ("mail @ domain")
            

            【讨论】:

            • 这个答案需要重新措辞,可能还需要格式化。真的不清楚你的意思。 “纽洛伊”?另外,请使用提供的代码格式化工具。
            • 这个答案比它有用的更令人困惑。
            • 邮件错误:地址无效:(cc)
            猜你喜欢
            • 2016-07-07
            • 1970-01-01
            • 2014-03-14
            • 1970-01-01
            • 1970-01-01
            • 2012-05-21
            • 2014-08-24
            • 1970-01-01
            相关资源
            最近更新 更多