当前位置: 首页 > 后端技术 > PHP

phpmailer实现Thunderbird主题跟踪(Threads)邮件发送

时间:2023-03-29 23:57:23 PHP

业务需要,需要开发“发送Threads邮件”功能1.工具介绍php5PHPMailer5.2.252.工作原理老板只提了一个关键词:Thread,对应的中文就是主题。他不知道这是如何实现的。我用QQ邮箱做了一个测试,发现QQ邮箱是以标题作为话题追踪的线索,所以用原来的方式发邮件也能实现话题追踪的功能,这不符合我的目的。后来在网上找了半天终于找到这篇文章:HowtoMergeThreadsinMozillaThunderbird—TheAdvancedWay,里面介绍了会话跟踪的原理:Message-IDandReferences假设我发了一封邮件,并且一封邮件会有一个唯一的Message-ID,如果B以后发送的邮件要和A形成对话,只需要在References中添加A的Message-ID即可。另外,添加References有两种形式:Indentationmode:第n封邮件要添加到之前的第1到(n-1)封邮件的Message-IDparallelmode:从第2封到第n封邮件,只添加第n封邮件的Message-ID第一封邮件需要添加,由于项目使用PHP5,只能使用5.2版本。1、Message-ID设置Message-ID很简单,PHPMailer中有:public$MessageID;注意作者提示:可以自己设置,但必须是格式,发送邮件前直接设置Message-ID的值$this->$MessageID='1a2b3c4d@example.com';2、References当前版本的PHPMailer没有提供直接修改References的接口,但是我找到了另一种方式:publicfunctionaddCustomHeader($name,$value=null),很简单。只需要:$referID='1a2b3c4d@example.com';$this->addCustomHeader('References',$referID);4.完成其他必填项目和可选项目填好后就可以发送看看效果啦!5.感受遇到新的任务,不要害怕,因为总有办法解决的。你必须静下心来查找信息。想好方案,勇敢尝试。6.参考信息如何在MozillaThunderbird中合并线程——进阶之道PHPMailer5.2