python poplib .retr(n)插入" =",插入' 3D'和分裂对象

时间:2014-04-01 20:56:44

标签: python poplib

我正在使用poplib从邮件服务器获取电子邮件。方法retr(n)检索第n个电子邮件消息。它以有趣的形式返回消息,其中所有内容都被分成几行并放在元组中。是什么赋予了! :它将字符“3D”随机插入电子邮件中。此外,它将标记的元素分解为碎片并在断裂处插入“=”。正如其他人看到的那样?

1 个答案:

答案 0 :(得分:0)

给予Andrew Medico信用,您看到的字符串位于“Quoted Printable Encoding”(http://en.wikipedia.org/wiki/Quoted-printable)。我收到的电子邮件已经是那种格式了,就我而言。

我可以使用quopri模块(https://docs.python.org/2/library/quopri.html)将其变回“普通”字符串。

import poplib
import quopri

pop_conn = poplib.POP3_SSL( "the_host" )
pop_conn.user("my_user")
pop_conn.pass_("my_password")

email_i_want = 1

encoded_msg = pop_conn.retr( email_i_want )[1]
joined_msg = str( '\n'.join(encoded_msg) )
decoded_msg = quopri.decodestring( joined_msg )

print decoded_msg