一.簡介:
電子郵件是最流行的互聯網應用之一,在系統管理中,經常需要使用郵件來告警信息,業務質量報告等。方便運維人員在第一時間瞭解業務的服務狀態,將通過使用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:[email protected] #htttp://www.mrliangqi.com import smtplib import string HOST = "smtp.126.com" SUBJECT = "HI,test email from python!" TO = "[email protected]" FROM = "[email protected]" 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("[email protected]","mailpwd") #遠程smtp主機方法。引號中是帳號和密碼 server.sendmail(FROM,[TO],BODY) server.quit() #斷開smtp服務器 print "Mail sent successfully" except exception, e: print "Mail sendfail!"