Eu pessoalmente escolheria a opção MIMEDefang sugerida por Andrzej A. Filip, mas imaginei como escreveria isso em um script python e encontrei a seguinte solução. Caso o MIMEDefang não seja uma opção para o seu ambiente, você pode querer testá-lo. Sem garantias, testadas apenas com algumas mensagens de amostra
#!/usr/bin/python
import email
import sys
def remove_attachment(rootmsg,attachment_name):
"""return message source without the first occurence of the attachment named <attachment_name> or None if the attachment was not found"""
for msgrep in rootmsg.walk():
if msgrep.is_multipart():
payload=msgrep.get_payload()
indexcounter=0
for attachment in payload:
att_name = attachment.get_filename(None)
if att_name==attachment_name:
del payload[indexcounter]
return rootmsg.as_string()
indexcounter+=1
if __name__=='__main__':
incontent=sys.stdin.read()
try:
rootmsg=email.message_from_string(incontent)
except:
sys.stderr.write("Message could not be parsed")
sys.exit(1)
src=remove_attachment(rootmsg,'image001.png')
if src!=None:
sys.stdout.write(src)
else:
sys.stdout.write(incontent)