Python中怎么郵件處理,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
站在用戶的角度思考問題,與客戶深入溝通,找到番禺網(wǎng)站設(shè)計(jì)與番禺網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋番禺地區(qū)。
一、發(fā)送電子郵件
Python標(biāo)準(zhǔn)庫提供了smtplib,用于實(shí)現(xiàn)SMTP協(xié)議發(fā)送郵件。標(biāo)準(zhǔn)庫還提供email模塊幫助我們構(gòu)建郵件格式。SMTP(Simple Mail Transfer Protocol,即簡單郵件傳輸協(xié)議),是一組有源地址到目的地址傳送郵件的規(guī)則,用來控制信件的中轉(zhuǎn)方式。
獲取QQ郵箱密碼(授權(quán)碼)
二、發(fā)送純文本格式的郵件
代碼如下:
import smtplib from email.mime.text import MIMEText from email.header import Header # 郵箱用戶名 sender = 'dad@qq.com'(輸入你的郵箱) # 郵箱密碼(部分郵箱為授權(quán)碼) password = '123456'(輸入你的密碼) # 收件人郵箱地址,注意需要[]包裹,這意味著你可以寫多個(gè)郵件地址群發(fā) receiver = ['baby@qq.com', ](輸入你要發(fā)送人的郵箱) # 郵件正文 text = 'Hello,baby' message = MIMEText(text, 'plain', 'utf-8') # 發(fā)件人顯式的名字 message['From'] = Header('拿頭來堅(jiān)持', 'utf-8') # 收件人顯式的名字 message['To'] = Header('baby', 'utf-8') # 郵件標(biāo)題 message['Subject'] = '爸爸來信,請接收!' try: # 使用QQ企業(yè)郵箱服務(wù)器發(fā)送 smtp = smtplib.SMTP('smtp.qq.com') # 登錄 smtp.login(sender, password) # 發(fā)送 smtp.sendmail(sender, receiver, message.as_string()) print('郵件發(fā)送成功!') # 退出服務(wù)器 smtp.quit() except smtplib.SMTPException as e: print('Error!郵件發(fā)送失??!', e)
Python基礎(chǔ)分析之郵件處理
發(fā)送純文本格式的郵件執(zhí)行結(jié)果:
三、發(fā)送HTML格式的郵件
代碼如下:
import smtplib from email.mime.text import MIMEText from email.header import Header # 郵箱用戶名 sender = 'dad@qq.com'(輸入你的郵箱) # 郵箱密碼(部分郵箱為授權(quán)碼) password = '123456'(輸入你的密碼) # 收件人郵箱地址,注意需要[]包裹,這意味著你可以寫多個(gè)郵件地址群發(fā) receiver = ['baby@qq.com', ](輸入你要發(fā)送人的郵箱) # 郵件正文 msg = ''' Life goes on, learning goes on
Python基礎(chǔ)分析之郵件處理
發(fā)送HTML格式的郵件的執(zhí)行結(jié)果:
四、發(fā)送帶附件的郵件
代碼如下:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header # 郵箱用戶名 sender = 'dad@qq.com'(輸入你的郵箱) # 郵箱密碼(部分郵箱為授權(quán)碼) password = '123456'(輸入你的密碼) # 收件人郵箱地址,注意需要[]包裹,這意味著你可以寫多個(gè)郵件地址群發(fā) receiver = ['baby@qq.com', ](輸入你要發(fā)送人的郵箱) # 指定消息體使用復(fù)合類型 message = MIMEMultipart() # 發(fā)件人顯式的名字 message['From'] = Header('拿頭來堅(jiān)持', 'utf-8') # 收件人顯式的名字 message['To'] = Header('baby', 'utf-8') # 郵件標(biāo)題 message['Subject'] = '爸爸來信,請接收!' # 郵件正文 msg = ''' Life goes on, learning goes on
Python基礎(chǔ)分析之郵件處理
發(fā)送帶附件的郵件執(zhí)行結(jié)果:
五、發(fā)送圖片的郵件
代碼如下:
import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.header import Header # 郵箱用戶名 sender = 'dad@qq.com'(輸入你的郵箱) # 郵箱密碼(部分郵箱為授權(quán)碼) password = '123456'(輸入你的密碼) # 收件人郵箱地址,注意需要[]包裹,這意味著你可以寫多個(gè)郵件地址群發(fā) receiver = ['baby@qq.com', ](輸入你要發(fā)送人的郵箱) # 利用related定義內(nèi)嵌資源的郵件體 message = MIMEMultipart('related') # 發(fā)件人顯式的名字 message['From'] = Header('拿頭來堅(jiān)持', 'utf-8') # 收件人顯式的名字 message['To'] = Header('baby', 'utf-8') # 郵件標(biāo)題 message['Subject'] = '爸爸來信,請接收!' # 郵件正文 content = MIMEMultipart('alternative') # html內(nèi)容 msg = ''' Life goes on, learning goes on拿頭來堅(jiān)持的個(gè)人主頁
''' # 郵件附加html文件 message.attach(MIMEText(msg, 'html', 'utf-8')) # 添加圖片 with open('csdn.png', 'rb') as f: img01 = MIMEImage(f.read()) # 定義資源的名字為img01 img01.add_header('Content-ID', 'img01') # 郵件附加圖片 message.attach(img01) try: # 使用QQ企業(yè)郵箱服務(wù)器發(fā)送 smtp = smtplib.SMTP('smtp.qq.com') # 登錄 smtp.login(sender, password) # 發(fā)送 smtp.sendmail(sender, receiver, message.as_string()) print('郵件發(fā)送成功!') # 退出服務(wù)器 smtp.quit() except smtplib.SMTPException as e: print('Error!郵件發(fā)送失?。?#39;, e)
Python基礎(chǔ)分析之郵件處理
發(fā)送圖片的郵件執(zhí)行結(jié)果:
六、接收電子郵件
接受郵件有兩種常用的協(xié)議:POP3和IMAP協(xié)議
POP3協(xié)議(Post Office Protocol-Version3,即郵局協(xié)議版本3):允許電子郵件客戶端下載服務(wù)器上的郵件,但是在客戶端的操作(如移動(dòng)郵件、標(biāo)記已讀等)不會(huì)反饋到服務(wù)器上,比如通過客戶端收取了郵箱的3封郵件并移動(dòng)到其他文件夾,郵件服務(wù)器上的這些郵件不會(huì)被同步移動(dòng)。
IMAP協(xié)議(Internet Mail Access Protocol,即Internet郵件訪問協(xié)議):提供Webmail與電子郵件客戶端之間的雙向通信,任何在客戶端做的改變都會(huì)同步到服務(wù)器上。在客戶端對郵件進(jìn)行了操作,服務(wù)器上的郵件也會(huì)進(jìn)行相應(yīng)的操作。
七、使用POP3協(xié)議下載郵件
代碼如下:
import poplib from email.parser import Parser # 登錄郵箱的用戶名 username = 'baby@qq.com'(輸入你的郵箱) # 登錄郵箱的密碼(部分郵箱為授權(quán)碼) password = '123456'(輸入你的密碼) # 連接郵箱服務(wù)器 pop_server = poplib.POP3('pop.qq.com') # 打印出郵箱服務(wù)器的歡迎文字 print(pop_server.getwelcome()) # 登錄郵箱服務(wù)器 pop_server.user(username) pop_server.pass_(password) # 打印出當(dāng)前賬號(hào)的狀態(tài),第一個(gè)返回值為郵件數(shù),第二個(gè)返回值為占用空間 print('Server stat', pop_server.stat()) # 獲取所以郵件列表 resp, mails, octets = pop_server.list() print(mails) # 獲取最新的一封郵件(序列號(hào)最大的),郵件索引從1開始計(jì)數(shù) index = len(mails) resp, lines, octets = pop_server.retr(index) content = b'\r\n'.join(lines).decode('utf-8') # 解析出郵件 msg = Parser().parsestr(content) # 可以根據(jù)郵件索引號(hào)直接從服務(wù)器刪除郵件 # pop_server.dele(index) # 關(guān)閉連接 pop_server.quit()
Python基礎(chǔ)分析之郵件處理
執(zhí)行結(jié)果:
b'+OK XMail POP3 Server v1.0 Service Ready(XMail v1.0)'
Server stat (15, 50814)
[b'1 1255', b'2 1286', b'3 1310', b'4 1398', b'5 1458', b'6 1450', b'7 1602', b'8 1633', b'9 5001', b'10 2347', b'11 2371', b'12 2267', b'13 5033', b'14 5077', b'15 17326']
關(guān)于Python中怎么郵件處理問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。