Python使用smtplib?實(shí)現(xiàn)單發(fā)和群發(fā)郵件驗(yàn)證碼
前言:
Python smtplib 教程:展示了如何使用 smtplib 模塊在 Python 中發(fā)送電子郵件。 要發(fā)送電子郵件,我們使用 Python 開發(fā)服務(wù)器,Mailtrap 在線服務(wù)和共享的網(wǎng)絡(luò)托管郵件服務(wù)器。
smtplib庫
python發(fā)送郵件需要用到smtplib庫,先簡單了解一下
SMTP
簡單郵件傳輸協(xié)議(SMTP)是用于電子郵件傳輸?shù)耐ㄐ艆f(xié)議。 Is 是一個(gè) Internet 標(biāo)準(zhǔn),該標(biāo)準(zhǔn)于 1982 年由 RFC 821 首次定義,并于 2008 年由 RFC 5321 更新為擴(kuò)展 SMTP 添加。 郵件服務(wù)器和其他郵件傳輸代理使用 SMTP 發(fā)送和接收郵件。
smtplib是一個(gè) Python 庫,用于使用簡單郵件傳輸協(xié)議(SMTP)發(fā)送電子郵件。 smtplib是內(nèi)置模塊; 我們不需要安裝它。 它抽象了 SMTP 的所有復(fù)雜性。
郵件服務(wù)器
要實(shí)際發(fā)送電子郵件,我們需要有權(quán)訪問郵件服務(wù)器。 Python 帶有一個(gè)簡單的開發(fā)郵件服務(wù)器。 Mailslurper 是易于使用的本地開發(fā)服務(wù)器。 共享的虛擬主機(jī)提供商使我們可以訪問郵件服務(wù)器。 我們可以在帳戶中找到詳細(xì)信息。
smtp協(xié)議的基本命令包括:
- HELO 向服務(wù)器標(biāo)識(shí)用戶身份\
- MAIL 初始化郵件傳輸 mail from:\
- RCPT 標(biāo)識(shí)單個(gè)的郵件接收人;常在MAIL命令后面,可有多個(gè)rcpt to:\
- DATA 在單個(gè)或多個(gè)RCPT命令后,表示所有的郵件接收人已標(biāo)識(shí),并初始化數(shù)據(jù)傳輸,以.結(jié)束\
- VRFY 用于驗(yàn)證指定的用戶/郵箱是否存在;由于安全方面的原因,服務(wù)器常禁止此命令\
- EXPN 驗(yàn)證給定的郵箱列表是否存在,擴(kuò)充郵箱列表,也常被禁用\
- HELP 查詢服務(wù)器支持什么命令\
- NOOP 無操作,服務(wù)器應(yīng)響應(yīng)OK\
- QUIT 結(jié)束會(huì)話\
- RSET 重置會(huì)話,當(dāng)前傳輸被取消\
- MAIL FROM 指定發(fā)送者地址\
- RCPT TO 指明的接收者地址
實(shí)戰(zhàn)
1.126郵箱一般默認(rèn)關(guān)閉SMTP服務(wù),我們得先去開啟它


2.Python代碼
# smtplib 用于郵件的發(fā)信動(dòng)作 import smtplib from email.mime.text import MIMEText # email 用于構(gòu)建郵件內(nèi)容 from email.header import Header # 用于構(gòu)建郵件頭 # 發(fā)信方的信息:發(fā)信郵箱,126 郵箱授權(quán)碼 from_addr = 'trobot@126.com' password = 'POP3/SMTP服務(wù)授權(quán)密碼,上一步可以獲取' # 收信方郵箱 to_addr = 'xxxx@163.com' # 發(fā)信服務(wù)器 smtp_server = 'smtp.126.com' """標(biāo)題""" head="郵箱驗(yàn)證碼" """正文""" text="【TRobot】您的驗(yàn)證碼32123,該驗(yàn)證碼5分鐘內(nèi)有效,請勿泄漏于他人!" # 郵箱正文內(nèi)容,第一個(gè)參數(shù)為內(nèi)容,第二個(gè)參數(shù)為格式(plain 為純文本),第三個(gè)參數(shù)為編碼 msg = MIMEText(text,'plain','utf-8') # 郵件頭信息 msg['From'] = Header(from_addr) msg['To'] = Header(to_addr) msg['Subject'] = Header(head) # 開啟發(fā)信服務(wù),這里使用的是加密傳輸 #server = smtplib.SMTP_SSL() server=smtplib.SMTP_SSL(smtp_server) server.connect(smtp_server,465) # 登錄發(fā)信郵箱 server.login(from_addr, password) # 發(fā)送郵件 server.sendmail(from_addr, to_addr, msg.as_string()) # 關(guān)閉服務(wù)器 server.quit()
到此這篇關(guān)于Python使用smtplib 實(shí)現(xiàn)單發(fā)和群發(fā)郵件驗(yàn)證碼的文章就介紹到這了,更多相關(guān)python發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能,結(jié)合實(shí)例形式分析了Python針對(duì)字符串序列的遍歷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
python利用socketserver實(shí)現(xiàn)并發(fā)套接字功能
這篇文章主要為大家詳細(xì)介紹了python利用socketserver實(shí)現(xiàn)并發(fā)套接字功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
keras的ImageDataGenerator和flow()的用法說明
這篇文章主要介紹了keras的ImageDataGenerator和flow()的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
python采用django框架實(shí)現(xiàn)支付寶即時(shí)到帳接口
這篇文章主要介紹了python采用django框架實(shí)現(xiàn)支付寶即時(shí)到帳接口的相關(guān)資料,需要的朋友可以參考下2016-05-05
用python實(shí)現(xiàn)一個(gè)簡單計(jì)算器(完整DEMO)
這篇文章主要介紹了用python實(shí)現(xiàn)一個(gè)簡單計(jì)算器(完整DEMO),需要的朋友可以參考下2020-10-10
解決Jupyter Notebook “signal only works&nb
這篇文章主要介紹了解決Jupyter Notebook “signal only works in main thread“問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

