phpmailer发送电子邮件,主题行添加两次

phpmailer发送电子邮件,主题行添加两次,php,phpmailer,Php,Phpmailer,phpmailer的一个非常基本的实现中存在一个奇怪的错误,其中主题行添加了两次自身,在代码中只添加了一次: $mailer->Subject = "My Subject"; $mailer->Send(); 输出结果是它收到邮件,但主题行在电子邮件客户端中出现了两次。这很奇怪,而且在代码的前面没有设置它 有人看到此错误并找到了修复方法吗?您是否尝试在多个客户端中查看电子邮件?看起来可能是你的主题被包含在标题中,或者你的电子邮件客户端出于某种原因可能会显示两次。也许作为电子邮件的标

phpmailer的一个非常基本的实现中存在一个奇怪的错误,其中主题行添加了两次自身,在代码中只添加了一次:

$mailer->Subject = "My Subject";
$mailer->Send();
输出结果是它收到邮件,但主题行在电子邮件客户端中出现了两次。这很奇怪,而且在代码的前面没有设置它


有人看到此错误并找到了修复方法吗?

您是否尝试在多个客户端中查看电子邮件?看起来可能是你的主题被包含在标题中,或者你的电子邮件客户端出于某种原因可能会显示两次。也许作为电子邮件的标题


就我个人而言,我从未见过或听说过这种性质的bug。

您是否尝试过在多个客户端中查看电子邮件?看起来可能是你的主题被包含在标题中,或者你的电子邮件客户端出于某种原因可能会显示两次。也许作为电子邮件的标题


就我个人而言,我从未见过或听说过这种性质的bug。

PHPMailer的->$Subject属性只是一个变量。分配新值不会将其附加到上一个值,它将覆盖并替换任何以前的主题。除非您使用的是类似于:

$mail->Subject .= 'extra subject bits';
or
$mail->Subject = $mail->Subject . 'extra subject bits';
那你就得去别处找找原因。也许邮件服务器的配置中有一个bug,或者您已经对PHPMailer进行了子类化,而您的超类正在做一些古怪的事情


您可以通过向由不同服务器处理的多个帐户发送相同的电子邮件来检查是否是接收服务器的问题。->AddBCC、->AddCC和->addaddAddress多次将处理该问题。只需确保地址由不同的服务器处理。

PHPMailer的->$Subject属性只是一个变量。分配新值不会将其附加到上一个值,它将覆盖并替换任何以前的主题。除非您使用的是类似于:

$mail->Subject .= 'extra subject bits';
or
$mail->Subject = $mail->Subject . 'extra subject bits';
那你就得去别处找找原因。也许邮件服务器的配置中有一个bug,或者您已经对PHPMailer进行了子类化,而您的超类正在做一些古怪的事情


您可以通过向由不同服务器处理的多个帐户发送相同的电子邮件来检查是否是接收服务器的问题。->AddBCC、->AddCC和->addaddAddress多次将处理该问题。只需确保地址由不同的服务器处理。

我解决了这个问题。有一个名为SingleTo的属性,需要将其设置为true。

$mail->SingleTo=true


它应该可以正常工作。

我解决了这个问题。有一个名为SingleTo的属性,需要将其设置为true。

$mail->SingleTo=true


它应该可以正常工作。

我知道这很旧,但我找到了一个解决方案:

phpmailer在create_header函数中将$subject和recipients添加到$headers中,但是当您使用默认的发送方法-php-mail时,它会再次添加它们。邮件($to,$this->Subject,$body,$header)

要解决这个问题,只需在phpmailer的create_header函数中注释掉这些行

//$header[] = $this->addr_append("To", $this->to);

//$header[] = sprintf("Subject: %s\n", trim($this->Subject));

我知道这很古老,但我找到了一个解决方案:

phpmailer在create_header函数中将$subject和recipients添加到$headers中,但是当您使用默认的发送方法-php-mail时,它会再次添加它们。邮件($to,$this->Subject,$body,$header)

要解决这个问题,只需在phpmailer的create_header函数中注释掉这些行

//$header[] = $this->addr_append("To", $this->to);

//$header[] = sprintf("Subject: %s\n", trim($this->Subject));

PHPMailer 6.0.3也有类似的问题

发送的电子邮件带有重复的“主题”标题条目,导致@yahoo、@sky.com和@rocketmail.com收件人的电子邮件跳转。尽管如此,Hotmail和GMail仍在接受电子邮件

在/PHPMailer6/PHPMailer.php中,注释掉第2299-2301行修复了该问题

/*if ('mail' != $this->Mailer) {
    $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
}*/

在其他地方,我使用PHPMailer发送邮件是典型的代码示例

PHPMailer 6.0.3也有类似的问题

发送的电子邮件带有重复的“主题”标题条目,导致@yahoo、@sky.com和@rocketmail.com收件人的电子邮件跳转。尽管如此,Hotmail和GMail仍在接受电子邮件

在/PHPMailer6/PHPMailer.php中,注释掉第2299-2301行修复了该问题

/*if ('mail' != $this->Mailer) {
    $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
}*/
在其他地方,我使用PHPMailer发送邮件,这是典型的代码示例