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 可以 |
注册
个人空间
