【Python】发送邮件功能浅析

之前要做一个mysql慢查询的定时发送程序,研究了一下python 发送email的模块。python 可以smtplib 库和email 库发送邮件。
一 stmplib 的使用
初始化语法如下:
#连接到SMTP服务器
s = smtplib.SMTP('smtp.XXXX.com')
#发送邮件。msg是字符串,表示邮件内容。
s.sendmail(from_addr, to_addrs, msg)
#断开连接
s.quit()
二 email 的使用
有关MIME的一些知识
多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。
RFC2822定义的邮件格式中,邮件体只是单纯的ASCII编码的字符序列,MIME扩展邮件的格式,用以支持非ASCII编码的文本、非文本附件及包含多个部分(multi-part)的邮件体。

MIME消息由消息头、消息体组成,即邮件的邮件头、邮件体。中间以空行进行分隔。
1、邮件头:包括发件人(from)、收件人(to)、邮件主题(subject)、接收日期(date)、MIME版本、邮件内容类型等信息。每条信息称为一个域,由域名后加“:”和信息内容构成,域的首行必须顶头写。

2、邮件体:有text/plain(纯文本)和text/html(超文本)之分,由邮件头的“content type”域指出。可以同时存在,也可以只存在一种。这就是为什么有些邮件既可以用html格式查看,又可以用文本格式查看的原因。邮件体分为多个段,称为Payload。每个段也包括段头段尾,中间以空行分隔。
multipart类型有3种:
multipart/mixed 
multipart/related 
multipart/alternative。
邮件里添加附件要定义multipart/mixed段:
如果纯文本超文本共存,则要定义multipart/alternative,
如存在内嵌资源,要定义multipart/related。

3、附件(attach)。发送邮件时,可以将本机的文件一起发送。附件可以有0个或多个,只要附件的总大小,不超过邮件服务器所声明的最大容量。
class email.mime.text.MIMEText(_text[, _subtype[, _charset]])
用于生成MIME对象的主体文本:_text指定邮件内容,_subtype指定邮件类型,_charset指定编码。
class email.mime.multipart.MIMEMultipart()
用于生成包含多个部分的邮件体的MIME对象

三 简单例子介绍:
一个发送至多人的例子:
#!/usr/bin/evn python
import time
import smtplib
from email.mime.text import MIMEText


mail_body='hello, this is the mail content from python and it is sended to two emails !'
fromer='qilong.yangql@gmail.com'
##注意sender 一定要是数组,否则接受到邮件显示收件人是被";" 截断的字符串
sender=['5XXX2@qq.com','yangXXX@163.com']
msg=MIMEText(mail_body)
msg['Subject']='hello  world '
msg['From']=fromer
msg['To']=';'.join(sender)
msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z')

s=smtplib.SMTP('smtp.XXXXX.com')
s.sendmail(fromer,sender,msg.as_string())
s.quit()



参考:
http://newliu.com/post/25/
http://docs.python.org/2/library/email-examples.html
http://zh.wikipedia.org/wiki/%E5%A4%9A%E7%94%A8%E9%80%94%E4%BA%92%E8%81%AF%E7%B6%B2%E9%83%B5%E4%BB%B6%E6%93%B4%E5%B1%95

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-765694/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22664653/viewspace-765694/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值