一.简介:

   电子邮件是最流行的互联网应用之一,在系统管理中,经常需要使用邮件来告警信息,业务质量报告等。方便运维人员在第一时间了解业务的服务状态,将通过使用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为连接或者尝试的超时时间。

#!/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!"