Python 發(fā)送SMTP郵件的簡(jiǎn)單教程
一、兩個(gè)模塊
Python使用SMTP發(fā)送郵件的兩個(gè)模塊:smtplib模塊、email模塊。
- smtplib:負(fù)責(zé)發(fā)送郵件
- email:負(fù)責(zé)構(gòu)建郵件
二、SMTP端口
1)未加密端口,smtplib.SMTP接口,端口:25
2)使用SSL加密,smtplib.SMTP_SSL接口,端口:465
3)使用TLS加密,端口:587
三、四大步驟
1、構(gòu)造郵件內(nèi)容
# 純文本 msg = MIMEText(content) # 附件 msg = MIMEMultipart()
2、連接郵件服務(wù)器
s = smtplib.SMTP("smtp.qq.com", 25)
3、登陸郵件服務(wù)器
s.login(msg_from, passwd)
msg_from:指發(fā)送者的郵箱
passwd:指發(fā)送者的密碼,這個(gè)密碼不是你的QQ登陸密碼,而是你在QQ郵箱設(shè)置開啟SMTP之后的一個(gè)授權(quán)碼
4、發(fā)送郵件
s.sendmail(msg_from, msg_to, msg.as_string())
msg_from:發(fā)送方
msg_to:收件方
msg.as_string():要發(fā)送的消息
四、常用場(chǎng)景
1、純文本郵件
import smtplib from email.mime.text import MIMEText from email.header import Header # 發(fā)送者 msg_from = "xxxxx@qq.com" # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼 passwd = "xxxxx" # 接受者 msg_to = "xxxx@qq.com" # 郵件文本 content = 'Python 郵件發(fā)送測(cè)試...' # 郵件主題 subject = "test" # 生成一個(gè)MIMEText對(duì)象(還有一些其它參數(shù)) msg = MIMEText(content) # 放入郵件主題 msg['Subject'] = Header(subject, 'utf-8') # 放入發(fā)件人 msg['From'] = msg_from try: # 連接郵件服務(wù)器 s = smtplib.SMTP("smtp.qq.com", 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
2、發(fā)送html文本
import smtplib from email.mime.text import MIMEText from email.header import Header # 發(fā)送者 msg_from = "xxxx@qq.com" # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼 passwd = "xxxx" # 接受者 msg_to = "xxxx@qq.com" # 郵件文本 content = """ <p>Python 郵件發(fā)送測(cè)試...</p> <p><a rel="external nofollow" >這是一個(gè)鏈接</a></p> """ # 郵件主題 subject = "test" # 生成一個(gè)MIMEText對(duì)象( msg = MIMEText(content, 'html', 'utf-8') # 放入郵件主題 msg['Subject'] = Header(subject, 'utf-8') # 放入發(fā)件人 msg['From'] = msg_from try: # 連接郵件服務(wù)器 s = smtplib.SMTP("smtp.qq.com", 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
3、發(fā)送附件
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header # 發(fā)送者 msg_from = "xxxx@qq.com" # 這里的密碼不是QQ郵箱的密碼,而是在設(shè)置里開啟SMTP服務(wù)器后的授權(quán)碼 passwd = "xxxx" # 接受者 msg_to = "xxxx@qq.com" # 郵件主題 subject = "test" # 生成一個(gè)MIMEMultipart對(duì)象( msg = message = MIMEMultipart() # 郵件文本 message.attach(MIMEText('這是菜鳥教程Python 郵件發(fā)送測(cè)試……', 'plain', 'utf-8')) # 放入郵件主題 msg['Subject'] = Header(subject, 'utf-8') # 放入發(fā)件人 msg['From'] = msg_from # 添加附件 att1 = MIMEText(open('./wordcloud_singer.py', 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' att1["Content-Disposition"] = 'attachment; filename="test.txt"' msg.attach(att1) try: # 連接郵件服務(wù)器 s = smtplib.SMTP("smtp.qq.com", 25) # 登錄到郵箱 s.login(msg_from, passwd) # 發(fā)送郵件:發(fā)送方,收件方,要發(fā)送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
以上就是Python 發(fā)送SMTP郵件的簡(jiǎn)單教程的詳細(xì)內(nèi)容,更多關(guān)于Python 發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能
- Python利用機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)垃圾郵件的識(shí)別
- Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
- Python基礎(chǔ)詳解之郵件處理
- Python 調(diào)用API發(fā)送郵件
- Python基于SMTP發(fā)送郵件的方法
- python基于SMTP發(fā)送QQ郵件
- python 自動(dòng)監(jiān)控最新郵件并讀取的操作
- python實(shí)現(xiàn)發(fā)送郵件
- python 實(shí)現(xiàn)網(wǎng)易郵箱郵件閱讀和刪除的輔助小腳本
- python如何發(fā)送帶有附件、正文為HTML的郵件
- python使用Windows的wmic命令監(jiān)控文件運(yùn)行狀況,如有異常發(fā)送郵件報(bào)警
- 用python監(jiān)控服務(wù)器的cpu,磁盤空間,內(nèi)存,超過郵件報(bào)警
- python郵件中附加文字、html、圖片、附件實(shí)現(xiàn)方法
- Python用20行代碼實(shí)現(xiàn)完整郵件功能
相關(guān)文章
Python中使用logging和traceback模塊記錄日志和跟蹤異常
今天小編就為大家分享一篇關(guān)于Python中使用logging和traceback模塊記錄日志和跟蹤異常,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04把大數(shù)據(jù)數(shù)字口語(yǔ)化(python與js)兩種實(shí)現(xiàn)
當(dāng)出現(xiàn)萬(wàn)以上的整型數(shù)字時(shí),經(jīng)常要把它們口語(yǔ)化比較直觀。下面分享兩段代碼,python與js的2013-02-02基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型
這篇文章主要介紹了基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Django與pyecharts結(jié)合的實(shí)例代碼
這篇文章主要介紹了Django與pyecharts結(jié)合的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-05-05python 實(shí)現(xiàn)的車牌識(shí)別項(xiàng)目
這篇文章主要介紹了python 實(shí)現(xiàn)的車牌識(shí)別項(xiàng)目,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法
今天小編就為大家分享一篇python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-10-10