电子邮件解析

这是我在Python上的第一个脚本.不知道它是正确使用的
模块,但它与俄罗斯代码页面特别合作
和Mime形成的消息.也引用了打印机和base64
编码...
如果有人在此脚本上发表任何评论,那将是非常好的.是
好是坏...
导入电子邮件
导入邮箱
来自电子邮件.
来自电子邮件.
导入字符串
导入系统
OUTENC =" CP866"
infile = sys.argv [1]
substrobrez = []
substrobrez.append(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
substrobrez.append("" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要取消订阅此论坛,请发送电子邮件至:"")
substrobrez.append(" ~~~~~~~~~~~~~~~~~~")
#在消息结束时删除Yahoo信息
Def Obrez(Strmsg):
对于sudstrobrez中的s:
n = string.rfind(strmsg,s)
如果n!= -1:
返回strmsg [0:n]
返回Strmsg
#转换消息标题
def my_get_header(str):
str2 =""
对于Val,在Decode_header(str)中编码:
如果编码:
str2 = str2+ val.decode(编码)+""
别的:
str2 = str2+ val+""
返回str2
#处理消息
DEF PROC(MSG):
打印'来自:'+ my_get_header(msg ['from']).
打印'to:'+ my_get_header(msg ['to']).
打印'主题:'+ my_get_header(msg ['object']).
打印
如果msg.is_multipart():
对于MSG.Walk()的一部分:
如果part.get_content_type()==" text/plain":
if part.get_content_chareet():
打印
obrez(part.get_payload(none,true).decode(part.get_ content_chareet()).encode(outenc))
别的:
打印obrez(part.get_payload(无,true))
别的:
如果msg.get_content_type()==" text/plain":
如果msg.get_content_chareet():
打印
obrez((sg.get_payload(none,true)).decode(msg.get_conten t_chareet())).encode(outenc)
别的:
打印obrez(msg.get_payload(无,true))
别的:
如果msg.get_content_type()==" text/html":
如果msg.get_content_chareet():
打印
(msg.get_payload(none,true)).解码(msg.get_conten t_chareet()).encode(outenc)
别的:
打印msg.get_payload(无,正确)
############################# ####################################
#主要程序
f =开放(ifile," rb")
M1 = Mailbox.unixmailbox(F)
rublst = []
rublst.append([[" [contestru)"," fotstr"])
rublst.append([[" [ussiandx]"," forudx"])
对于邮箱中的msg.unixmailbox(f,email.message_from_file):
在rublst中摩擦:
如果string.find(my_get_header(msg ['object']),rub [0])!= -1:
打印" SB"+rub [1]+"@forum 打印my_get_header(msg ['object']).encode(outenc)
打印
PROC(MSG)
打印
打印"由Python驱动"
打印"/ex"

标签: python

添加新评论