脚本或工具来parsing电子邮件消息,以删除特定名称的附件

我已经configuration了Redmine电子邮件集成,虽然很棒,但主要的烦恼是人们的签名包含公司徽标,然后通过电子邮件发送到每张票。 我知道这不是一个完美的解决scheme,但我想pipe道删除消息中的名为“image001.png”的附件的脚本,所以我可以pipe它一起处理程序。 有没有工具可以帮助,或者我必须从头开始?

之前: alias > mailhandler.rb

之后: alias > parser.script > mailhandler.rb

我个人去为由Andrzej A. Filipbuild议的MIMEDefang选项,但我想知道如何写在python脚本,并提出了以下解决scheme。 如果MIMEDefang不适合您的环境,则可以尝试使用它。 没有保证,只有几个样本消息进行testing

 #!/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) 

您可以使用MIMEDefang milter作为postfix(或sendmail)的插件。

http://www.roaringpenguin.com/products/mimedefang

MIMEDefang可以检查和修改电子邮件通过您的邮件中继。 MIMEDefang是用Perl编写的,其filter操作是用Perl表示的,所以它非常灵活。 以下是您可以使用MIMEDefang轻松完成的一些操作:
*根据文件名,内容,病毒扫描结果,附件大小等删除或更改附件。
*将带有链接的大型附件replace为集中存储的副本,以减轻使用慢速调制解调器链接的POP3用户的负担。
[…]

http://www.mimedefang.org/

MIMEDefang是免费软件:它是根据GNU通用公共许可证条款发布的。 它在Linux,FreeBSD,Solaris和大多数其他UNIX或类UNIX系统下运行。