我需要处理弹跳,其中大多数将有一个详细信息。我检查了多部分,内容类型和编码,但是我有问题:
1)
delets.txt可能看起来像这样:
动作:失败
状态:4.3.0
远程MTA:DNS;abc.abc.com
诊断代码:SMTP;451 4.3.0您的SMTP网关被确定为不酷 如果您从事营销工作,杀死自己,不要开玩笑,请自杀
有效载荷将返回列表,这不是我想要的,
a)是否有没有使用有效载荷的"零件"的说法?我需要一个带有诸如"动作"one_answers"状态"(str split(':')的键的字典,但是诊断代码中的新线是一个问题,所以
b)
b)您如何解析宽松的结构文本,假设':'似乎或多或少会不断地发行吗?
2)另一个大问题:编码,大约30%的细节。br>未编码:blah blah blah
和编码的部分:'Base64String'
我可以用纯字符串称呼B64decode,但是它具有' n'加上我需要"检测"该字符串,如果您遇到/遇到相同的问题,网上什么也没发现,帮助您非常感谢,感谢您的时间
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == 'message/delivery-status':
if part.get('Content-Transfer-Encoding') != 'base64':
# get payload or work with part without payload
else:
# assuming base64 encoded...
该格式由RFC 1894定义。阅读RFC,我认为它回答了您的大多数问题。