PHPMailer:替换默认的messageID
Posted
技术标签:
【中文标题】PHPMailer:替换默认的messageID【英文标题】:PHPMailer : replace the default messageID 【发布时间】:2017-02-12 20:45:03 【问题描述】:我使用 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';
结果:这始终是 PHPMailer 生成的默认 MessageID:
不是我的... :(
然后我尝试了更简单的东西:
$mail->MessageID = "blablag@domain.com";
结果:KO(相同)
文档说明我们可以设置一个MessageID,而且应该是一个字符串,我完全不明白为什么它不起作用...
有什么想法吗?
【问题讨论】:
【参考方案1】:MessageID
的结构应该是:
<sometext@sometext>
如果您的 MessageID
没有这种确切的结构 - PHPMailer 将忽略您的 MessageId
并生成它自己的 MessageId。
您可以将代码更改为:
$mail->MessageID = "<" . md5('HELLO'.(idate("U")-1000000000).uniqid()).'-'.$type.'-'.$id.'@domain.com>';
它应该可以工作。
【讨论】:
是的,我查看了 phpMailer 类中的 preg_match 规则,就是这样,我忘了结束我的问题,愚蠢的错误......但谢谢!以上是关于PHPMailer:替换默认的messageID的主要内容,如果未能解决你的问题,请参考以下文章
phpmailer 发送Outlook邮件时535 5.7.3 authentication unsuccessful错误的解决办法
phpmailer 发送Outlook邮件时535 5.7.3 authentication unsuccessful错误的解决办法