python发送邮件
python发送普通文本邮件
![[原]8.python学习笔记:python发送邮件]()
之前在设置zabbix邮件报警的时候使用mail命令进行发送,其实python也有自己的模块支持邮件发送(smtplib模块),下面给出示例,向大家介绍如何使用python进行邮件发送。
代码示例如下:
#!/usr/bin/env python import smtplib import string HOST = "smtp.sina.com" SUBJECT = "test hello world" TO = "**********@qq.com" FROM = "**********@sina.com" text = "hello world test, ni hao" BODY = string.join(( "From: %s" % FROM, "To: %s" % TO, "Subject: %s" % SUBJECT, "", text ), "\r\n") if __name__ == "__main__": server = smtplib.SMTP() server.connect(HOST, "25") server.starttls() server.login("*********@sina.com", "***********") server.sendmail(FROM, TO, BODY) server.quit()通过如下命令执行邮件发送:
[root@bogon python]# python mail_test.py可以看到收到了邮件内容:
![[原]8.python学习笔记:python发送邮件](http://www.codesec.net/app_attach/201611/29/20161129_422_503946_0.png!web)
下面我们对smtplib的方法进行介绍:
1.smtplib.SMTP这个构造函数,产生一个可以连接smtp服务器的对象。
2.接下来几个函数分别指定了所要访问的邮件服务器以及开放的端口,还有登录的用户名和密码:
server.connect(HOST, "25") server.starttls() server.login("*********@sina.com", "***********")其中starttls是对邮件的传输过程采用加密传输协议。
3.核心的方法在sendmail方法中,他指定了发送邮件的from(发件方),to(收件方),以及BODY。
这里的BODY有着自己的格式:
From:***********@qq.com To: **********@qq.com Subject: ******** *********************(发送内容)可以采用string把这些内容添加进来,生成一个完整的字符串。更好的方法使采用email模块,它支持更多的内容类型(文字、图片和音频等)。