发送到CC的phpmailer工作正常,但在SMTP模式下CC不会显示在邮件(如BCC)中

时间:2016-05-24 19:53:57

标签: php email phpmailer

PHPmailer版本:2.0.4

运行以下行时

$Mail = new PHPMailer();
$Mail->IsSMTP();
$Mail->AddAddress("first@mail.com");
$Mail->AddCC("second@mail.com");
... set some body, set host, set sender info, and so on
$Mail->send();

第一个和第二个都会收到邮件,但第二个地址不会作为CC显示在邮件上,就像它是BCCed而不是CCed一样。

在评论出IsSMTP()=>时使用默认的“邮件”模式,CC正在按预期显示。

尝试谷歌这种效果,但似乎我是这个星球上唯一经历过这个问题的人......

2 个答案:

答案 0 :(得分:1)

  

地址未显示在邮件上

由于缺少发送邮件的原始标头等数据,您的问题几乎无法解决。我在评论中要求这一点,但我认为在你的案例中这是毫无意义的,因为......

  

PHPmailer版本:2.0.4

我很少在PHPMailer's changelog中看到版本2.0.4,但假设它已在2.0.0 rc22.1.0 beta1版本之间的某个位置发布,它仍然意味着您正在使用围绕发布的代码2007年12月

为了上帝而升级!

答案 1 :(得分:-1)

可能已经找到了解决方案:

PHPMailer类,函数CreateHeader(),第890行

原始代码:

if(($ this-> Mailer =='sendmail')||($ this-> Mailer =='mail'))&&(count($ this-> cc)&gt ; 0)){   $ result。= $ this-> AddrAppend('Cc',$ this-> cc); }

我的新固定代码:

if(($ this-> Mailer =='sendmail')||($ this-> Mailer =='mail')||($ this-> Mailer =='smtp')) &&(count($ this-> cc)> 0)){   $ result。= $ this-> AddrAppend('Cc',$ this-> cc); }

最初AddrAppend()函数仅在mode设置为'sendmail'或'mail'时调用,但它也需要调用'smtp'模式

不知道这种情况是否是PHPmailer员工的意图,或者只是一个需要修复的错误。