直接上代碼
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
# 第三方 SMTP 服務(wù)
mail_host="smtp.qq.com" #設(shè)置服務(wù)器
mail_user="111@qq.com" #用戶名
mail_pass="adfafda" #口令
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
def send_mail(f, to_addr):
'''
:param f: 附件路徑
:param to_addr:發(fā)給的人 []
:return:
'''
from_addr = mail_user
password = mail_pass
# to_addr = "ashikun@126.com"
smtp_server = mail_host
msg = MIMEMultipart()
# msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = _format_addr('坤少發(fā)的郵件<%s>' % from_addr)
msg['To'] = _format_addr('大人 <%s>' % to_addr)
msg['Subject'] = Header('接口測試報告……', 'utf-8').encode()
msg.attach(MIMEText('接口測試報告.', 'plain', 'utf-8'))
part = MIMEApplication(open(f, 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename=f)
msg.attach(part)
server = smtplib.SMTP_SSL(smtp_server, 465)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
- 被這里密碼坑了好長時間沛励,切記這里的密碼不是登陸密碼,而是授權(quán)碼
- QQ發(fā)郵件用25端口發(fā)送不成功氓英,用搞定ssl的465