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

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

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

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

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

 

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

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

 

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

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

相关文章:

  • 2021-04-05
  • 2021-12-26
  • 2022-02-17
  • 2022-12-23
  • 2022-12-23
  • 2021-10-12
  • 2022-12-23
  • 2021-06-26
猜你喜欢
  • 2022-12-23
  • 2021-09-29
  • 2021-08-19
  • 2022-12-23
  • 2022-01-30
  • 2022-12-23
相关资源
相似解决方案