【问题标题】:PHPMailer : replace the default messageIDPHPMailer:替换默认的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,而且应该是一个字符串,我完全不明白为什么它不起作用...

有什么想法吗?

【问题讨论】:

    标签: php html nginx smtp phpmailer


    【解决方案1】:

    MessageID的结构应该是:

    <sometext@sometext>
    

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

    您可以将代码更改为:

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

    它应该可以工作。

    【讨论】:

    • 是的,我查看了 phpMailer 类中的 preg_match 规则,就是这样,我忘了结束我的问题,愚蠢的错误......但谢谢!
    猜你喜欢
    • 2017-06-14
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多