之前在设置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
下面我们对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模块,它支持更多的内容类型(文字、图片和音频等)。