资讯专栏INFORMATION COLUMN

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

Lemon_95 / 3272人阅读

摘要:业务需求需要开发发送邮件的功能一工具介绍二工作原理上司只提及一个关键词对应的中文是话题他也不知道这个是怎么实现的我用邮箱做了测试发现邮箱是使用标题作为话题跟踪的线索所以用原有的方法发送一封邮件也可以实现话题跟踪的功能这个与我的目标不符后来在

业务需求,需要开发"发送Threads邮件"的功能
一、工具介绍

php5

PHPMailer 5.2.25

二、工作原理

上司只提及一个关键词: Thread, 对应的中文是 话题. 他也不知道这个是怎么实现的.

我用QQ邮箱做了测试,发现QQ邮箱是使用标题作为话题跟踪的线索,所以用原有的方法发送一封邮件,也可以实现话题跟踪的功能,这个与我的目标不符.

后来,在网上搜了很久,终于发现了这篇文章:
How to Merge Threads in Mozilla Thunderbird — The Advanced Way
里面介绍了会话跟踪的原理: Message-IDReferences

假设我发送了A邮件,A邮件会有独特的Message-ID, 后来发送的B邮件如果要与A形成会话, 只需要在References添加A的Message-ID.

而且,添加References有两种形式:

缩进模式: 第n封邮件要添加前面第1到第(n-1)封邮件的Message-ID

并列模式: 第2到n封邮件只需要添加第1封邮件的Message-ID

了解完原理,开始coding

三、PHPMailer的摸索

PHPMailer是一个很实用的PHP邮件库,由于项目使用PHP5,所以只能使用5.2版本.

1. Message-ID

设置Message-ID很简单,PHPMailer里面有:

public $MessageID;

留意作者的提示:

You can set your own, but it must be in the format "",

发送邮件前直接设置Message-ID的值

$this->$MessageID = "1a2b3c4d@example.com";
2. References

当前版本的PHPMailer没有提供直接修改References的接口,但我找到另一条途径:

public function addCustomHeader($name, $value = null)

这就简单了.

只需要:

$referID = "1a2b3c4d@example.com";
$this->addCustomHeader("References",$referID);
四、完成

把其他必填项和选填项填满后,就可以发送看效果啦!

五、感想

遇到全新的任务时,不用害怕,因为总是有解决方案的.

要沉下心来找资料.

思考方案,勇于尝试

六、参考资料

How to Merge Threads in Mozilla Thunderbird — The Advanced Way

PHPMailer 5.2

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28359.html

相关文章

  • 使用phpmailer发送邮件

    摘要:最近做邮件发送的时候尝试了一下,但是在用的过程中还是遇到一些问题,在这里记一下。在做常规测试的时候,发现邮件发送特别慢。默认设置是什么也不处理在邮件发送中需要添加抄送人。 最近做邮件发送的时候尝试了一下phpmailer,但是在用的过程中还是遇到一些问题,在这里记一下。做的过程中主要遇到这几个问题。1.在做常规测试的时候,发现邮件发送特别慢。这里主要找到是这句造成的: $this->s...

    WelliJhon 评论0 收藏0
  • tp3.2使用QQ邮箱或163邮箱通过PHPMailer发送邮件

    摘要:我之前一直使用邮箱发送需要处理的文件,但是如果操作过于频繁或者有别的问题,会导致发送失败,相反现在用的貌似还没出现过类似情况,不过邮箱配置和有一丢丢不一样,我还是贴一下,怕朋友们踩到坑建议大家用邮箱,建议大家用邮箱,建议大家用邮箱重要的事情 我之前一直使用163邮箱发送需要处理的文件,但是如果操作过于频繁【或者有别的问题】,会导致发送失败,相反现在用QQ的貌似还没出现过类似情况,不过Q...

    Harpsichord1207 评论0 收藏0
  • php 发送邮件(使用QQ邮箱)

    摘要:一,设置邮箱二,下载文件夹三,将文件夹放在网站根目录,或其他可引入的目录四,代码引入的核心文件实例化核心类是否启用的进行调试开发环境建议开启生产环境注释掉即可默认关闭调试模式使用鉴权方式发送邮件需要鉴权这个必须是链接域名邮箱的服务器地 一,设置qq邮箱 showImg(https://segmentfault.com/img/bVVugy?w=822&h=187); showImg(h...

    mmy123456 评论0 收藏0
  • 利用PHP实现常用的数据结构之队列(小白系列文章三)

    摘要:队列算法名词解释在计算机编程语言中用来为复杂的声明定义简单的别名例如,你不用像下面这样重复定义有个字符元素的数组只需这样定义,类型即代表了具有个元素的字符数组,使用方法如下中译为结构,其实就是定义抽象数据类型例这个就是一个由班级姓名年龄 /** * PHP队列算法 * Created on 2017-4-25 * Author entner * Emai...

    SimonMa 评论0 收藏0

发表评论

0条评论

Lemon_95

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<