the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


python发送邮件判断是否被打开

作者:the5fire | 标签:   | 发布:2012-10-28 12:12 a.m. | 阅读量: 7195, 7116

这也是接着 上一篇 文章的那个面试题,不过判断邮件是否被打开是与使用什么语言无关的,只是一种解决思路。

判断邮件是否被打开,其实就要了解打开邮件的过程发生了什么。除了目前大部分邮箱提供的已读回执之外,我不了解是否在邮件协议中有关于这一部分的东西。不过这并不妨碍咱解决这个问题。

我一直以为,程序员编程的本质就是解决问题,只不过是不同层次的人有不同层次的解决方法。利用自己已知的东西解决现有问题的程序员我以为是合格的。至于这个方案在更高级别的程序员看来是否不够优雅,是需要高人指点的。

不管怎么说,但从邮件打开阅读的过程中,我们可以知道,邮件打开之后是可以带有html样式的。既然会渲染样式,那肯定需要你提供的css样式文件,这个东西会链到你自己的服务器上。除了样式之外,还有图片,这个一般也是链到自己的服务器(也有可能是租来的图片服务器或者cdn)。

有了这些认识我们就了解到,在邮件被打开的一瞬间,这个邮件的内容需要你的服务器提供支持,也就是会发送请求到你的服务器。因此,我的做法是模拟一个图片的url,然后以图片的方式写入到邮件正文的html代码中,图片的高度和宽度均为0,因为不是真正的图片。

具体的代码就是:

<img src="http://localhost:8000/notify.png" width=0 height=0/>`

只是本地测试用 然后在tornaod或者django上通过正则匹配这个url,当然在其他语言中页游对应的方式。

因此,只要邮件被打开你就会收到通知。

当然需求是很无耻的坑。因此只是接受通知并不是最终要达到的目标。你还希望能够统计是哪个客户,并且不希望邮件每次打开都要统计,这个要怎么做呢?你来自由发挥吧。^.^


----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡


其他分类: