PHPMailer:替换默认的messageID

Jul*_*ien 2 html php smtp nginx phpmailer

我使用PHPMailer发送电子邮件,evthg效果很好,但我会为每封电子邮件设置一个唯一的MessageID。

PHPMailer版本:“ v5.2.16”

(从https://github.com/PHPMailer/PHPMailer.git随Composer加载)

我在这里找到了文档:http : //phpmailer.github.io/PHPMailer/classes/PHPMailer.html#property_MessageID

所以这是我尝试的:

 $mail = new PHPMailer;
 ...
 $mail->MessageID = md5('HELLO'.(idate("U")-1000000000).uniqid()).'-'.$type.'-'.$id.'@domain.com';
Run Code Online (Sandbox Code Playgroud)

结果:这始终是PHPMailer生成的默认MessageID:

在此处输入图片说明

而不是我的... :(

然后我尝试sthg更简单:

 $mail->MessageID = "blablag@domain.com";
Run Code Online (Sandbox Code Playgroud)

结果:KO(相同)

文档表明我们可以设置一个MessageID,它应该是一个字符串,我根本不明白为什么它不起作用...

任何的想法 ?

Dek*_*kel 6

的结构MessageID应为:

<sometext@sometext>
Run Code Online (Sandbox Code Playgroud)

如果您MessageID没有这种确切的结构-PHPMailer将忽略您MessageId并生成它自己的MessageId。

您可以将代码更改为:

$mail->MessageID = "<" . md5('HELLO'.(idate("U")-1000000000).uniqid()).'-'.$type.'-'.$id.'@domain.com>';
Run Code Online (Sandbox Code Playgroud)

它应该工作。