|
一.简介:
电子邮件是最流行的互联网应用之一,在系统管理中,经常需要使用邮件来告警信息,业务质量报告等。方便运维人员在第一时间了解业务的服务状态,将通过使用python的smtplib模块来实现邮件的发送功能,能模拟一个smtp的客户端,通过与smtp服务器交互来实现邮件的发送功能,可以理解成foxmail的发邮件功能,在第一次使用的时候需要诶只smtp的主机地址,邮箱帐号密码等信息。python 2.4以上的版本默认就自带了smtplib模块,无需额外安装。
二.smtplib模块的常用类与方法
smtp类定义:smtp.SMTP([host[,port[,local_hostname[,timeout]]]]),作为smtp的构造函数,功能是与smtp服务器建立连接,成功之后,就可以向服务器发送相关请求,如:登录,校验,发送,推出等。host参数为远程smtp主机地址,比如:smtp.163.com,port 25,local_hostname的作用是在本地主机的FQDN发送HELO/EHLO(表示用户身份)指令,timeout为连接或者尝试的超时时间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #!/usr/bin/python
#coding: utf-8
#mail:su_root@126.com
#htttp://www.mrliangqi.com
import smtplib
import string
HOST = "smtp.126.com"
SUBJECT = "HI,test email from python!"
TO = "905526265@qq.com"
FROM = "su_root@126.com"
TEXT = "hello world"
BODY = string.join((
"From: %s" %FROM,
"TO: %s" % TO,
"Subject: %s" % SUBJECT,
"",
TEXT
),"\r\n")
try:
server = smtplib.SMTP()
server.connect(HOST,"25") #连接远程主机smtp主机的方法
server.starttls()
server.login("su_root@126.com","mailpwd") #远程smtp主机方法。引号中是帐号和密码
server.sendmail(FROM,[TO],BODY)
server.quit() #断开smtp服务器
print "Mail sent successfully"
except exception, e:
print "Mail sendfail!"
|
|
|