一.環(huán)境準(zhǔn)備
1.開啟SMTP服務(wù)殿漠,比如用qq 郵箱做測試賬號(hào)赴精,則需要先檢查下是否已經(jīng)開啟了SMTP.
步驟如下:
1)打開郵箱頁面,點(diǎn)擊“設(shè)置”
2)在設(shè)置頁面凸舵,點(diǎn)擊“賬號(hào)”
3)找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)祖娘,并開啟SMTP服務(wù)
開啟后要記得第三方登錄授權(quán)碼,在代碼中的發(fā)件人密碼就是該授權(quán)密碼啊奄,而不是平常在UI登錄郵箱的那個(gè)密碼
2.找到SMTP和POP3的服務(wù)器地址
1).在qq 郵箱首頁,點(diǎn)擊幫助中心
2)在查詢框中輸入相關(guān)字符掀潮,如輸入“SMTP”,在出現(xiàn)的總多結(jié)果中菇夸,點(diǎn)擊相關(guān)的信息,如截圖:
3)步驟2)后的結(jié)果截圖
二.代碼實(shí)現(xiàn)
#coding:utf-8 #強(qiáng)制使用utf-8編碼格式
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
def _format_addr(s):
name,addr=parseaddr(s)
return formataddr((Header(name,'utf-8').encode(),addr))
from_addr=input('請輸入發(fā)送人郵箱地址:')
password=input('請輸入密碼:')#注意仪吧,這里是第三方客戶端登錄授權(quán)密碼庄新,不是郵箱的登錄密碼
to_addr=input('請輸入收件人郵箱地址:')
smtp_server=input('請輸入smtp 服務(wù)器地址:')
#from_addr = 'xxxxxx@qq.com'
#password = 'zms.....'
#to_addr = 'xxxxxxxx@qq.com'
#smtp_server = 'smtp.qq.com'
msg=MIMEText('hello,send by python...','plain','utf-8')
msg['From']=_format_addr('python愛好者<%s>' % from_addr)
msg['To']=_format_addr('管理員<%s>' % to_addr)
msg['Subject']=Header('來自SMTP,,,,,','utf-8').encode()
server = smtplib.SMTP(smtp_server,25) # SMTP協(xié)議默認(rèn)端口是25
#server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()#關(guān)閉連接