【发布时间】:2015-01-21 14:36:03
【问题描述】:
我希望使用 Python 的 email 模块将 MIME 邮件消息部分的编码从 quoted-printable 或 base64 更改为 7bit 或 8bit。一切似乎都解决了,除了最后,对于某些消息,email.message.as_string 将某些部分(text/plain 和text/html 都遇到)编码为base64。我不明白为什么,以及如何理解这种行为来避免它。
脚本代码:
# Read and parse the message from stdin
msg = email.message_from_string(sys.stdin.read())
for part in msg.walk():
if part.get_content_maintype() == 'text':
if part['Content-Transfer-Encoding'] in {'quoted-printable', 'base64'}:
payload = part.get_payload(decode=True)
del part['Content-Transfer-Encoding']
part.set_payload(payload)
email.encoders.encode_7or8bit(part)
# Send the modified message to stdout
print(msg.as_string())
(如果这很重要:我使用 Python 3.3)
【问题讨论】:
标签: python email character-encoding base64 mime