Python示例功能之郵件傳送
阿新 • • 發佈:2018-12-19
定時郵件傳送或告警郵件實時傳送是工作中常用的功能之一,該功能需要呼叫傳送郵件模組,如下為親測可用的Python編寫的郵件傳送程式碼,該程式碼使用qq郵箱可正常傳送郵件,使用163郵箱時提示554錯誤碼郵件無法正常發出。
實現郵件傳送需要兩個步驟,第一步為獲取郵箱的使用者名稱密碼,在使用程式碼傳送郵件時,該密碼不是使用者密碼,而是授權碼,如下演示瞭如何獲取授權碼以及郵件傳送程式碼。
獲取郵件授權碼
在qq郵箱的”設定”介面中,開啟“賬戶”的選項頁,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務的模組,開啟POP3和IMAP服務,見如下,並獲取授權碼,該授權碼需要在Python程式碼中使用。
郵件傳送程式碼示例
如下為郵件傳送程式碼,請把星號替換為你所使用的真實的郵箱。
import smtplib from email.header import Header from email.mime.text import MIMEText def send_email_test(): mail_host = "smtp.qq.com" mail_user = "*******@qq.com" mail_pass = "***************" # 授權密碼,非登入密碼 sender = '*******@qq.com' receivers = ['*******@qq.com'] content = 'Python example' title = 'this is a super mail!' send_email(mail_host, mail_user, mail_pass, sender, receivers, title, content) def send_email(mail_host, mail_user, mail_pass, sender, receivers, title, content): message = MIMEText(content, 'plain', 'utf-8') message['From'] = "{}".format(sender) message['To'] = ",".join(receivers) message['Subject'] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print("mail has been send successfully.") except smtplib.SMTPException as e: print(e) if __name__ == '__main__': send_email_test() # receiver = '***' # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
在執行後列印如下,檢視郵箱,可以收到相應郵件
如果您喜歡這邊文章,請記得點贊和評論哦!
2018年11月3日 香港演員藍潔瑛去世,享年55歲,
漂亮的她,一生不幸,
歷經雪藏、情變、受辱、破產、自殺,
晚年平淡淒涼,
願天堂裡不再有磨難!