阅 读 文 章

用Python处理邮件,全文完.

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(jasonnbfan) | 时间:2007-05-27 | 浏览:人次 ]


MIME-Version: 1.0
Content-Transfer-Encoding: base64

1eLA78rHxNrI3Q==

Content-Type,说明内容类型,这里是txt/plain,纯文本类型。如果添加附件
那么就是Application/octet-stream
Content-Transfer-Encoding这个就是编码类型,这里是base64,现在的email都是base64编码

写完以后如何组合起来?mail有一个as_string()方法,顾名思义。显示成一个字符串.我上面也用了。smtplib里的sendmail()方法里需要的是字符串类型。所以我们这里可以这样: 完整的内容加起来就行了。
>;>;>;print msg.as_string()+body.as_string()
to: love@python.com
from: my@email.com
date: Mon Jul 11 20:18:13 2005
subject: =?gb2312?b?08q8/tb3zOI=?=

Content-Type: text/plain; charset="gb2312"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

1eLA78rHxNrI3Q==

如何发送.
server=smtplib.SMTP('smtp.mail.yahoo.com')  #你发送服务器的地址
server.login('username','password')       #用户名和密码
server.sendmail('from','to','msg.as_string()[:-1]+body.as_string()')
#这样就完成了邮件的发送.
有一点要注意.只有内容前面有一个空行,其他的地方都不能有空行.前面我们直接print msg.as_string()+body.as_string()可以看见在subject: 和Content-type:这里有一个空行,所以我用'msg.as_string()[:-1]把多余的空行去掉.让他和body保持格式.

下面看看如何发带附件的邮件,和上面差不多.
attach=mail.MIMEMultipart.MIMEMultipart()  #这里创建一个带附件的实例
attach.attach(body)  #把我们刚才写的邮件内容加进去.

attachment=MIMEText(open('myself.py','r').read(),'base64')
#第一个参数打开文件read()方法读出所有内容,刚好是字符串格式,第二个参数是希望的编码,这种方法比较简单.

attachment.replace_header('Content-type','Application/octet-stream;name="myself.py"')
#前面讲过Content-type:他的值可以是text/plain text/heml 等等,如果是附件,就是Application/octet-stream,后面的;name="myself.py"是附件的文件名.默认的MIMEText()后这里的内容是text/plain的,所以需要替换

attachment.add_header('Content-Disposition','attachment;filename="myself.py")
#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法可以得到附件里的文件名.

attach.attach(attachment)  #现在我们把编码好的附件也加进去

完成后的邮件像下面这样

to: asdf@tom.com
from: asdf@tom.com
subject: =?gb2312?b?1vfM4g==?=
Content-Type: multipart/mixed; boundary="===============0572491976=="
MIME-Version: 1.0

--===============0572491976==
Content-Type: text/plain; charset="gb2312"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

1eLA78rHxNrI3Q==

--===============0572491976==
Content-Type: Application/octet-stream;name="myself.py"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment;filename="myself.py"

ZnJvbSBlbWFpbC5NSU1FVGV4dCBpbXBvcnQgTUlNRVRleHQKZnJvbSBlbWFpbC5NSU1FTXVsdGlw
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 全文 邮件 处理 mail 方法 一个 内容 编码 subject 可以

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.