用Python的email模塊發送郵件


  Python發送郵件使用的協議是STMP,Python內置對STMP的支持,可以發送純文本郵件、HTML郵件及帶附件的郵件。Python對STMP支持有兩個模塊email和smtplib,email負責構造郵件,stmplib負責發送郵件。

1、申請一個163郵箱

  地址:https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail,完成郵箱的申請,然后開啟SMTP功能。

 ,

開啟服務后會給一個授權碼,需要保存好,后面需要用到。

 

 

 

 2、郵件的發送

  完成第1步之后,選構造一個純文本郵件並發送給指定郵箱:

from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr,formataddr
import smtplib


def _format_addr(s):
    name,addr = parseaddr(s)
    return formataddr((Header(name,'utf-8').encode(),addr))
'發件人地址,第一步申請的郵箱地址'
from_addr = 'email@163.com'
'郵箱密碼(第一步開通SMTP服務后給的授權碼)'
pwd = 'passwoerd'
'收件人地址'
to_addr = '41234444@qq.com'
'163郵箱服務器地址'
smtp_server = 'smtp.163.com'
'設置郵件信息'
msg = MIMEText('Python發送純文本郵件Demo','plain','utf-8')
'''
構造MIMEText需要三個參數:郵件正文、MIME的subtype,plain表示純文本、編碼格式
'''
msg['From'] = _format_addr('測試郵件<%s>'%from_addr)
msg['To'] = _format_addr('收件人<%s>'%to_addr)
msg['Subject'] = Header('測試','utf-8').encode()

'發送郵件'
server = smtplib.SMTP(smtp_server,25)#25為端口號
server.login(from_addr,pwd)
server.sendmail(from_addr,[to_addr],msg.as_string())
server.quit()

結果:

 

 

發送html郵件只需要在構造文本的時候,將plain參數改為html即可:

'設置郵件信息'
msg = MIMEText('<a href="http://www.baidu.com" target="_blank">點一下去百度</a>','html','utf-8')

  結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM