最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用smtp和pop簡(jiǎn)單收發(fā)郵件完整實(shí)例

 更新時(shí)間:2018年01月09日 14:02:31   作者:orangleliu  
這篇文章主要介紹了Python使用smtp和pop簡(jiǎn)單收發(fā)郵件完整實(shí)例,簡(jiǎn)單介紹了smtp和pop,然后分享了相關(guān)實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下

SMTP

SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對(duì)SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件。

Python對(duì)SMTP支持有smtplib和email兩個(gè)模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件。

pop

收取郵件就是編寫(xiě)一個(gè)MUA作為客戶(hù)端,從MDA把郵件獲取到用戶(hù)的電腦或者手機(jī)上。收取郵件最常用的協(xié)議是POP協(xié)議,目前版本號(hào)是3,俗稱(chēng)POP3。

Python內(nèi)置一個(gè)poplib模塊,實(shí)現(xiàn)了POP3協(xié)議,可以直接用來(lái)收郵件。

注意到POP3協(xié)議收取的不是一個(gè)已經(jīng)可以閱讀的郵件本身,而是郵件的原始文本,這和SMTP協(xié)議很像,SMTP發(fā)送的也是經(jīng)過(guò)編碼后的一大段文本。

要把POP3收取的文本變成可以閱讀的郵件,還需要用email模塊提供的各種類(lèi)來(lái)解析原始文本,變成可閱讀的郵件對(duì)象。

所以,收取郵件分兩步:

第一步:用poplib把郵件的原始文本下載到本地;

第二部:用email解析原始文本,還原為郵件對(duì)象。

email系統(tǒng)組件:

MTA消息傳輸代理,負(fù)責(zé)郵件的路由,隊(duì)列和發(fā)送

SMTP簡(jiǎn)單郵件傳輸協(xié)議

1連接到服務(wù)器

2登陸

3發(fā)出服務(wù)請(qǐng)求

4退出

POP:郵局協(xié)議

RFC918"郵局協(xié)議的目的是讓用戶(hù)的工作站可以訪(fǎng)問(wèn)到郵箱服務(wù)器里的郵件。

郵件要能從工作站通過(guò)簡(jiǎn)單郵件傳輸協(xié)議SMTP發(fā)送到郵件服務(wù)器"

POP的使用:

1連接到服務(wù)器

2登陸

3發(fā)出服務(wù)請(qǐng)求

4退出

#coding:utf8 
#python2.7 mailtest.py 
''''' 
使用smtp和pop3 協(xié)議收發(fā)qq郵箱實(shí)驗(yàn) 
用戶(hù)名和密碼需要自己填寫(xiě) 
''' 
 
from smtplib import SMTP 
from smtplib import SMTPRecipientsRefused 
from poplib import POP3 
from time import sleep 
import sys 
 
smtpserver = 'smtp.qq.com' 
pop3server = 'pop.qq.com' 
emailaddr = '847915049@qq.com' 
username = 'XXX' 
password = 'XXX' 
 
#組合郵件格式 
origHeaders = ['From: 847915049@qq.com', 
 'To: 847915049@qq.com', 
 'Subject: test msg'] 
origBody = ['nihao ','yaan','sichuan'] 
origMsg = '\r\n\r\n'.join(['\r\n'.join(origHeaders),'\r\n'.join(origBody)]) 
 
#發(fā)送郵件部分 
sendSer = SMTP(smtpserver) 
sendSer.set_debuglevel(1) 
print sendSer.ehlo()[0] #服務(wù)器屬性等 
sendSer.login(username,password) #qq郵箱需要驗(yàn)證 
try: 
 errs = sendSer.sendmail(emailaddr,emailaddr,origMsg) 
except SMTPRecipientsRefused: 
 print 'server refused....' 
 sys.exit(1) 
sendSer.quit() 
assert len(errs) == 0,errs 
 
 
print '\n\n\nsend a mail ....OK!' 
sleep(10) #等待10秒 
print 'Now get the mail .....\n\n\n' 
 
 
 
#開(kāi)始接收郵件 
revcSer = POP3(pop3server) 
revcSer.user(username) 
revcSer.pass_(password) 
 
rsp,msg,siz = revcSer.retr(revcSer.stat()[0]) 
sep = msg.index('') 
if msg: 
 for i in msg: 
  print i 
revcBody = msg[sep+1:] 
assert origBody == revcBody 
print 'successful get ....' 

結(jié)果:

send: 'ehlo [169.254.114.107]\r\n' 
reply: '250-smtp.qq.com\r\n' 
reply: '250-PIPELINING\r\n' 
reply: '250-SIZE 52428800\r\n' 
reply: '250-AUTH LOGIN PLAIN\r\n' 
reply: '250-AUTH=LOGIN\r\n' 
reply: '250-MAILCOMPRESS\r\n' 
reply: '250 8BITMIME\r\n' 
reply: retcode (250); Msg: smtp.qq.com 
PIPELINING 
SIZE 52428800 
AUTH LOGIN PLAIN 
AUTH=LOGIN 
MAILCOMPRESS 
8BITMIME 
250 
send: 'AUTH PLAIN ADg0NzkxNTA0OQA0OTMzODQ4MTIzNA==\r\n' 
reply: '235 Authentication successful\r\n' 
reply: retcode (235); Msg: Authentication successful 
send: 'mail FROM:<847915049@qq.com> size=88\r\n' 
reply: '250 Ok\r\n' 
reply: retcode (250); Msg: Ok 
send: 'rcpt TO:<847915049@qq.com>\r\n' 
reply: '250 Ok\r\n' 
reply: retcode (250); Msg: Ok 
send: 'data\r\n' 
reply: '354 End data with <CR><LF>.<CR><LF>\r\n' 
reply: retcode (354); Msg: End data with <CR><LF>.<CR><LF> 
data: (354, 'End data with <CR><LF>.<CR><LF>') 
send: 'From: 847915049@qq.com\r\nTo: 847915049@qq.com\r\nSubject: test msg\r\n\r\nnihao \r\nyaan\r\nsichuan\r\n.\r\n' 
reply: '250 Ok: queued as \r\n' 
reply: retcode (250); Msg: Ok: queued as 
data: (250, 'Ok: queued as') 
send: 'quit\r\n' 
reply: '221 Bye\r\n' 
reply: retcode (221); Msg: Bye 
 
 
 
send a mail ....OK! 
Now get the mail ..... 
 
 
 
Date: Mon, 22 Apr 2013 16:22:01 +0800 
X-QQ-mid: esmtp26t1366618921t440t12695 
Received: from [169.254.114.107] (unknown [120.210.224.173]) 
 by esmtp4.qq.com (ESMTP) with SMTP id 0 
 for <847915049@qq.com>; Mon, 22 Apr 2013 16:22:01 +0800 (CST) 
X-QQ-SSF: B101000000000050321003000000000 
From: 847915049@qq.com 
To: 847915049@qq.com 
Subject: test msg 
 
nihao 
yaan 
sichuan 
successful get .... 

總結(jié)

以上就是本文關(guān)于Python使用smtp和pop簡(jiǎn)單收發(fā)郵件完整實(shí)例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 基于numpy中數(shù)組元素的切片復(fù)制方法

    基于numpy中數(shù)組元素的切片復(fù)制方法

    今天小編就為大家分享一篇基于numpy中數(shù)組元素的切片復(fù)制方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python快速實(shí)現(xiàn)一鍵摳圖功能的全過(guò)程

    Python快速實(shí)現(xiàn)一鍵摳圖功能的全過(guò)程

    你有沒(méi)想過(guò),Python也能成為這樣的一種工具:在只有一張圖片,需要細(xì)致地?fù)赋鋈宋锏那闆r下,能幫你減少摳圖步驟,這篇文章主要給大家介紹了關(guān)于Python快速實(shí)現(xiàn)一鍵摳圖功能的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Python全棧之迭代器和高階函數(shù)

    Python全棧之迭代器和高階函數(shù)

    這篇文章主要為大家介紹了Python之迭代器和高階函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • python變量類(lèi)型、輸入、輸出運(yùn)算符介紹舉例

    python變量類(lèi)型、輸入、輸出運(yùn)算符介紹舉例

    Python是一種功能強(qiáng)大的編程語(yǔ)言,支持多種數(shù)據(jù)類(lèi)型和運(yùn)算符,它強(qiáng)調(diào)代碼的可讀性和簡(jiǎn)潔性,變量在Python中是動(dòng)態(tài)類(lèi)型的,不需要顯式聲明類(lèi)型,這篇文章主要介紹了python變量類(lèi)型、輸入、輸出運(yùn)算符的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python獲取網(wǎng)段內(nèi)ping通IP的方法

    Python獲取網(wǎng)段內(nèi)ping通IP的方法

    今天小編就為大家分享一篇Python獲取網(wǎng)段內(nèi)ping通IP的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 如何基于Python實(shí)現(xiàn)數(shù)字類(lèi)型轉(zhuǎn)換

    如何基于Python實(shí)現(xiàn)數(shù)字類(lèi)型轉(zhuǎn)換

    這篇文章主要介紹了如何基于Python實(shí)現(xiàn)數(shù)字類(lèi)型轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python變量的定義和運(yùn)算符的使用

    Python變量的定義和運(yùn)算符的使用

    這篇文章主要介紹了Python變量的定義和運(yùn)算符的使用,Python和C/Java不同,在定義變量的時(shí)候不需要顯示的指定變量的類(lèi)型,在賦值的時(shí)候自動(dòng)就會(huì)確定類(lèi)型,需要的朋友可以參考下
    2023-05-05
  • 用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    今天小編就為大家分享一篇用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib

    Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib

    今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Python 異常處理Ⅳ過(guò)程圖解

    Python 異常處理Ⅳ過(guò)程圖解

    這篇文章主要介紹了Python 異常處理Ⅳ過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

措勤县| 南溪县| 拜城县| 南陵县| 瑞安市| 马龙县| 蚌埠市| 六盘水市| 韶关市| 鄱阳县| 米泉市| 仙游县| 郸城县| 本溪市| 象山县| 维西| 贺兰县| 崇信县| 康定县| 吉首市| 长泰县| 娄烦县| 壶关县| 嵩明县| 农安县| 九龙坡区| 武夷山市| 黎川县| 额尔古纳市| 花垣县| 张北县| 镇赉县| 永顺县| 城固县| 布尔津县| 城市| 五原县| 阆中市| 荥经县| 永川市| 彭州市|