前言
其實Python使用QQ郵箱發送Email代碼很簡單,短短几行代碼就可以實現這個功能。
使用到的模組有smtplib和email這個兩個模組,關於這兩個模組的方法就不多說了。不瞭解的朋友們可以查看這篇文章:python中使用smtplib和email模組發送郵件執行個體
我們先說說網上常用的使用這那兩個模組發送郵件的方法
代碼如下:
import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerdef SendEmail(fromAdd, toAdd, subject, attachfile, htmlText): strFrom = fromAdd; strTo = toAdd; msg =MIMEText(htmlText); msg['Content-Type'] = 'Text/HTML'; msg['Subject'] = Header(subject,'gb2312'); msg['To'] = strTo; msg['From'] = strFrom; smtp = smtplib.SMTP('smtp.qq.com'); smtp.login('501257367@qq.com','password'); try: smtp.sendmail(strFrom,strTo,msg.as_string()); finally: smtp.close;if __name__ == "__main__": SendEmail("501257367@qq.com","501257367@qq.com","","hello","hello world");
運行結果:
smtplib.SMTPAuthenticationError: (530, 'Error: A secure connection is requiered(such as ssl). More information at http://www.php.cn/')
報錯,需要一個安全的串連,例如SSL,因此接下來我們會使用SSL的方式去登入,但是在那之前,我們需要做一些準備,開啟qq郵箱,點擊設定->
賬戶,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,開啟IMAP/SMTP服務,然後根據要求使用手機發送到指定號碼,擷取授權碼,
這個授權碼就是你接下來登入要使用的密碼,配置完成,上代碼
import smtplibfrom email.mime.text import MIMEText_user = "你的qq郵箱"_pwd = "你的授權碼"_to = "501257367@163.com"msg = MIMEText("Test")msg["Subject"] = "don't panic"msg["From"] = _usermsg["To"] = _totry: s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(_user, _pwd) s.sendmail(_user, _to, msg.as_string()) s.quit() print "Success!"except smtplib.SMTPException,e: print "Falied,%s"%e
運行結果如下: