电子邮件

时间:2017-07-04 21:11:07

标签: email encoding

我有一个python脚本,用于解析发送到支持地址的电子邮件并将其存储在数据库中。我在日志中遇到了数据库插入错误 字符串值不正确:'\ xA3500 w ... 当我在thunderbird中查看电子邮件时,我看到有问题的字符呈现为英镑符号£我可以从上下文中看出这确实是发件人的意图。但是当我看到原始的eml文件时,我看到了 = A3500英镑符号应该是。 电子邮件中的标题显示charset =“iso-8859-1”。我怀疑发送的电子邮件确实不符合规范,但我至少需要尝试处理不合格的电子邮件,而不仅仅是错误。

关于这里发生了什么以及如何处理的任何想法?必须可以按照预期解析电子邮件,因为thnderbird正在这样做。

1 个答案:

答案 0 :(得分:0)

我的代码基于此处的代码 https://docs.python.org/2/library/email-examples.html 解码多部分消息。事实证明,我收到了一个字符串后 body = part.get_payload(decode = True) " deocode"只是删除内容传输编码,我需要为charset添加第二个解码                 charset = part.get_content_charset()

             body = body.decode(charset)