python3通過qq郵箱發送郵件
0.了解qq郵箱的SMTP
郵箱 | POP3服務器(端口995) | SMTP服務器(端口465或587) |
---|---|---|
qq.com | pop.qq.com | smtp.qq.com |
SMTP服務器需要身份驗證。
1.開啟qq郵箱的smtp服務
如何打開POP3/SMTP/IMAP功能?
為了保障用戶郵箱的安全,QQ郵箱設置了POP3/SMTP/IMAP的開關。系統缺省設置是“關閉”,在用戶需要這些功能時請“開啟”。 首先,登錄郵箱,進入設置-帳戶;

然后,在“帳戶”設置中,找到設置項,進行設置,如下:

最后,保存設置,即打開了相應的服務。
2.代碼
import smtplib from email.mime.text import MIMEText from email.utils import formataddr my_sender='XXXXXXX@qq.com' # 發件人郵箱賬號 my_pass = 'xxxxxxxxxxxx' # 發件人郵箱密碼(當時申請smtp給的口令) my_user='xxxxxx@xx.com' # 收件人郵箱賬號,我這邊發送給自己 def mail(): ret=True try: msg=MIMEText('填寫郵件內容','plain','utf-8') msg['From']=formataddr(["發件人昵稱",my_sender]) # 括號里的對應發件人郵箱昵稱、發件人郵箱賬號 msg['To']=formataddr(["收件人昵稱",my_user]) # 括號里的對應收件人郵箱昵稱、收件人郵箱賬號 msg['Subject']="郵件主題-測試" # 郵件的主題,也可以說是標題 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 發件人郵箱中的SMTP服務器,端口是465 server.login(my_sender, my_pass) # 括號中對應的是發件人郵箱賬號、郵箱密碼 server.sendmail(my_sender,[my_user,],msg.as_string()) # 括號中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件 server.quit()# 關閉連接 except Exception:# 如果 try 中的語句沒有執行,則會執行下面的 ret=False ret=False return ret ret=mail() if ret: print("郵件發送成功") else: print("郵件發送失敗")
注意:如果收件人地址錯誤,但代碼還是會提示"郵件發送成功",如果是地址錯誤在qq郵箱中會收到"來自qq.com的退信"
摘自:http://www.jianshu.com/p/0f8c5e4e7054 如有冒犯,請聯系本人1315969544@qq,com
此篇僅供參考,不得用於商業用途。