Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送
一、QQ郵箱SSL發(fā)送
獲取qq授權(quán)碼
ssl發(fā)送方式不是使用郵箱密碼,而是需要授權(quán)碼,具體步驟如下:
登錄發(fā)送人qq郵箱>>設(shè)置>>賬戶>>POP3/STMP服務(wù)開(kāi)啟>>生成授權(quán)碼

驗(yàn)證密保

復(fù)制16位授權(quán)碼

qq郵箱發(fā)送源碼
#!/usr/bin/python3
# encoding:utf-8
'''
Created on 2020-04-24 12:15
@author: Administrator
'''
#coding:utf-8
import smtplib
from email.mime.text import MIMEText # 引入smtplib和MIMEText
from email.mime.multipart import MIMEMultipart
#設(shè)置SMTP地址
host = 'smtp.qq.com'
#設(shè)置發(fā)件服務(wù)器端口號(hào),注意,這里有SSL和非SSL兩種形式,qq SSL端口為465,非SSL為端口默認(rèn)25
port = "465"
#設(shè)置發(fā)件郵箱
sender = "357@qq.com"
#設(shè)置發(fā)件郵箱的授權(quán)碼 ,qq郵箱ssl發(fā)送需要先開(kāi)啟stmp并獲取密碼
pwd = 'sqmqweertyuiioplk' #16授權(quán)碼
#設(shè)置郵件接收人,發(fā)送給多人,隔開(kāi)
receiver = 'yiwr@163.com,7894@qq.com'
#設(shè)置郵件抄送人,發(fā)送給多人,隔開(kāi)
cc = 'ywr198592@126.com'
''' 不帶附件發(fā)送郵件
#設(shè)置html格式的郵件
#body = '<h1>這是一個(gè)python測(cè)試郵件</h1><p>test</p>'
#msg = MIMEText(body, 'html') # 設(shè)置正文為符合郵件格式的HTML內(nèi)容
#發(fā)送普通格式郵件
msg = MIMEText('Python 普通格式,郵件發(fā)送測(cè)試...', 'plain', 'utf-8')
'''
#需要發(fā)送附件的方法實(shí)例
msg = MIMEMultipart()
#設(shè)置發(fā)送頭信息
msg.add_header('subject', '測(cè)試郵件') #設(shè)置郵件標(biāo)題
msg.add_header('from', sender) # 設(shè)置發(fā)送人
msg.add_header('to', receiver) # 設(shè)置接收人
msg.add_header('Cc',cc) # 抄送人
#設(shè)置正文內(nèi)容
msg.attach(MIMEText('Python 郵件發(fā)送測(cè)試...', 'plain', 'utf-8'))
#設(shè)置附件1,D://cs.txt 文件
att1 = MIMEText(open('D://cs.txt', 'rb').read(), 'base64', 'utf-8')
att1.add_header('Content-Type', 'application/octet-stream')
# 這里的filename可以任意寫,寫什么名字,郵件中顯示附件的名字
att1.add_header('Content-Disposition', 'attachment', filename='cs.txt')
msg.attach(att1)
try:
#注意!如果是使用非SSL端口,這里就要改為SMTP
smtpObj = smtplib.SMTP_SSL(host, port)
#登陸郵箱
smtpObj.login(sender, pwd)
#發(fā)送郵件,注意第二個(gè)參數(shù)是發(fā)送人抄送人地址
smtpObj.sendmail(sender, receiver.split(',') + cc.split(','), msg.as_string())
print ("發(fā)送成功")
except smtplib.SMTPException as e:
print ("發(fā)送失敗")
print(e)
finally:
smtpObj.quit()
發(fā)送之后結(jié)果截圖

二、163郵箱非SSL發(fā)送
非ssl無(wú)需獲取授權(quán)碼,直接配置郵箱密碼即可
163郵箱發(fā)送源碼
#!/usr/bin/python3
#encoding:utf-8
'''
Created on 2020-04-24 12:15
@author: Administrator
'''
#coding:utf-8
import smtplib
from email.mime.text import MIMEText #引入smtplib和MIMEText
from email.mime.multipart import MIMEMultipart
#設(shè)置SMTP地址
host = 'smtp.163.com'
#設(shè)置發(fā)件服務(wù)器端口號(hào)。注意,這里有SSL和非SSL兩種形式,非SSL默認(rèn)端口25
port = 25
#設(shè)置發(fā)件郵箱
sender = "yiwr@163.com"
#設(shè)置發(fā)件郵箱密碼
pwd = 'xxxx'
#設(shè)置郵件接收人,發(fā)送給多人,隔開(kāi)
receiver = '7894@qq.com'
#設(shè)置郵件抄送人,發(fā)送給多人,隔開(kāi)
cc = '357@qq.com'
''' 不帶附件發(fā)送郵件
#設(shè)置html格式的郵件
#body = '<h1>這是一個(gè)python測(cè)試郵件</h1><p>test</p>'
#msg = MIMEText(body, 'html') #設(shè)置正文為符合郵件格式的HTML內(nèi)容
#發(fā)送普通格式郵件
msg = MIMEText('Python 普通格式,郵件發(fā)送測(cè)試...', 'plain', 'utf-8')
'''
#附件方法實(shí)例
msg = MIMEMultipart()
#設(shè)置頭信息
msg.add_header('subject', '測(cè)試郵件') #設(shè)置郵件標(biāo)題
msg.add_header('from', sender) #設(shè)置發(fā)送人
msg.add_header('to', receiver) #設(shè)置接收人
msg.add_header('Cc',cc) # 抄送人
#設(shè)置正文內(nèi)容
msg.attach(MIMEText('Python 郵件發(fā)送測(cè)試...', 'plain', 'utf-8'))
#設(shè)置附件1,D://cs.txt 文件
att1 = MIMEText(open('D://cs.txt', 'rb').read(), 'base64', 'utf-8')
att1.add_header('Content-Type', 'application/octet-stream')
#這里的filename可以任意寫,寫什么名字,郵件中顯示附件的名字
att1.add_header('Content-Disposition', 'attachment', filename='cs.txt')
msg.attach(att1)
try:
#注意!如果是使用SSL端口,這里就要改為SMTP_SSL
smtpObj = smtplib.SMTP(host, port)
#登陸郵箱
smtpObj.login(sender, pwd)
#發(fā)送郵件,注意第二個(gè)參數(shù)是發(fā)送人抄送人地址
smtpObj.sendmail(sender, receiver.split(',') + cc.split(','), msg.as_string())
print ("發(fā)送成功")
except smtplib.SMTPException as e:
print ("發(fā)送失敗")
print(e)
finally:
smtpObj.quit()
發(fā)送之后結(jié)果截圖

三、問(wèn)題
3.1 python通過(guò)qq郵箱,SMTP發(fā)送郵件失?。?/p>
問(wèn)題描述:使用qq賬戶及密碼SSL方式發(fā)送郵件,報(bào)錯(cuò):(535, b'Login Fail. Please enter your authorization code to login. More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256')
解決方案:開(kāi)啟POP3/SMTP服務(wù),獲取授權(quán)碼,qq源碼的郵箱密碼改成授權(quán)碼即可
3.2 html附件變.bin文件后綴
問(wèn)題描述:發(fā)送一個(gè)html格式的附件,收到郵件發(fā)送后綴變成.bin的文件,如圖:

解決方案:把 att1["Content-Disposition"] = 'attachment; filename="' + "接口測(cè)試報(bào)告.html" 改為 att1.add_header('Content-Disposition', 'attachment', filename='接口測(cè)試報(bào)告.html')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 開(kāi)啟OCSP提升https證書驗(yàn)證效率解決Let’s Encrypt SSL證書訪問(wèn)慢的問(wèn)題
- Java讀取OpenSSL生成的PEM公鑰文件操作
- 解決Python3.7.0 SSL低版本導(dǎo)致Pip無(wú)法使用問(wèn)題
- Python pip install之SSL異常處理操作
- 利用C#實(shí)現(xiàn)SSLSocket加密通訊的方法詳解
- Openssl實(shí)現(xiàn)雙向認(rèn)證教程(附服務(wù)端客戶端代碼)
- 如何通過(guò)Python3和ssl實(shí)現(xiàn)加密通信功能
- Jupyter notebook 遠(yuǎn)程配置及SSL加密教程
- 基于docker啟動(dòng)nginxssl配置
相關(guān)文章
python transpose()處理高維度數(shù)組的軸變換的實(shí)現(xiàn)
本文主要介紹了python transpose()處理高維度數(shù)組的軸變換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
matplotlib實(shí)現(xiàn)區(qū)域顏色填充
這篇文章主要為大家詳細(xì)介紹了matplotlib實(shí)現(xiàn)區(qū)域顏色填充,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
pytorch利用Dataset讀取數(shù)據(jù)報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了pytorch利用Dataset讀取數(shù)據(jù)報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Django debug為True時(shí),css加載失敗的解決方案
這篇文章主要介紹了Django debug為True時(shí),css加載失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
python爬取企查查企業(yè)信息之selenium自動(dòng)模擬登錄企查查
這篇文章主要介紹了python爬取企查查企業(yè)信息之自動(dòng)模擬登錄企查查以及selenium獲取headers,selenium獲取cookie,需要的朋友可以參考下2021-04-04
pytorch多GPU并行運(yùn)算的實(shí)現(xiàn)
這篇文章主要介紹了pytorch多GPU并行運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
關(guān)于jupyter lab安裝及導(dǎo)入tensorflow找不到模塊的問(wèn)題
這篇文章主要介紹了關(guān)于jupyter lab安裝及導(dǎo)入tensorflow找不到模塊的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
在windows系統(tǒng)中實(shí)現(xiàn)python3安裝lxml
本文主要給大家簡(jiǎn)單介紹了下在windows以及l(fā)inux系統(tǒng)中使用Python安裝LXML模塊的教程,非常簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-03-03

