关于使用jwSMTP库发送邮件的一个诡异问题

  大家知道,jwSMTP是一个简单易用的发送Email的开源C++库。笔者在系统业务中存在发送报警邮件的需求,

系统是python语言开发的,于是使用了这个库并将其包装成python接口(python内置的发邮件模块容易存在编码问题,不方便控制)

感觉不错,简单快捷稳定,编码一切正常,可是经过实测发现所有发送的邮件的“发送时间”都与实际时间存在几个小时的偏差,而且偏差是固定。

几番痛苦折腾无果,最后查看邮件SMTP协议相关的技术文档,有这么一段话:

 

恍然大悟,于是用单步调试模式跟踪jwSMTP发送代码的代码,最后在如下这个地方找到了问题的答案:

 

在源代码mailer.cpp文件中发送时间戳字符串那地方的结尾加上" +0800" 就正常了!

可见我们在引入国外一些优秀的开源项目时应多注意“编码”和“时区”这类很容易出现的问题,做好“本地化”工作。

posted @ 2013-03-26 16:22  软践  阅读(684)  评论(0编辑  收藏  举报