在系統管理領域,我們常常用郵件來發送管理信息、業務質量報表等,方便運維人員第一時間瞭解業務的服務狀態。通過python的smtplib模塊來實現郵件的發送功能,模擬一個smtp客戶端,通過與smtp服務器交互來實現郵件發送的功能。
smtplib模塊的常用類與方法
SMTP.connect([host[,port]])方法,連接遠程smtp主機方法,host爲遠程主機地址,port爲遠程主機smtp端口,默認爲25,也可以直接使用host:port形式來表示,例如:SMTP.connect("smtp.qq.com","25")
SMTP.login(user, password)方法,遠程主機的校驗方法。
SMTP.sendmail(from_addr, to_addrs, msg, mail_options=[],rcpt_options=[])方法,實現郵件的發送功能,參數依次爲發件人、收件人、郵件內容,例如:SMTP.sendmail("[email protected]","[email protected]",body),其中body內容如下:
SMTP.starttls()方法,啓用TLS(安全傳輸)模式,所有SMTP指令都將加密傳輸。
SMTP.quit()方法,斷開與smtp服務器的連接。
注意:QQ郵箱需要生成授權碼。
示例:
#!/usr/bin/env python import smtplib HOST = "smtp.qq.com" SUBJECT = "Test email from python" TO = "[email protected]" FROM = "[email protected]" test = "Just a test txt!" BODY = "\r\n".join(( "From: %s" %FROM, "To: %s" %TO, "Subject: %s" %SUBJECT, "", test)) server = smtplib.SMTP() server.connect(HOST,"25") server.starttls() server.login("[email protected]","password") server.sendmail(FROM,[TO],BODY) server.quit()