我收到了带有不需要的附件的电子邮件(在这种特殊情况下是PKCS-7签名)。我可以用这段代码检测电子邮件中的签名:
payloads = mail.get_payload()
for index in xrange(len(payloads)):
if payloads[index].get_content_type() == "application/pkcs7-signature":
print("Found PKCS-7 Signature", index)
如何从邮件中删除此特定有效内容? email.message API似乎只有读取和写入整个有效负载的方法:get_payload()和set_payload()。这些都不允许指定读取或写入内容的有效负载索引。
答案 0 :(得分:1)
一种可能的解决方案:
def remove_signature(mail):
payload = mail.get_payload()
if isinstance(payload, list):
for part in payload:
if part.get_content_type().startswith('application/pkcs7-signature'):
payload.remove(part)
return mail