使用python獲取郵箱郵件的設(shè)置方法
首先我們要在郵箱的設(shè)置中開通那個(gè)POP3
然后我們要導(dǎo)入這些包
import poplib from datetime import datetime import jieba import re from email.parser import Parser from email.header import decode_header from email.utils import parseaddr from lxml import etree
然后進(jìn)行鏈接
name_list = [] email = 'xxx@xx.com' password = 'xxxxxx' pop3_server = 'imap.exmail.qq.com' # 連接到POP3服務(wù)器: server = poplib.POP3(pop3_server) # 可以打開或關(guān)閉調(diào)試信息: server.set_debuglevel(1) # 可選:打印POP3服務(wù)器的歡迎文字: print(server.getwelcome().decode('utf-8')) # 身份認(rèn)證: server.user(email) server.pass_(password) # stat()返回郵件數(shù)量和占用空間: print('Messages: %s. Size: %s' % server.stat()) # list()返回所有郵件的編號: resp, mails, octets = server.list() # 可以查看返回的列表類似[b'1 82923', b'2 2184', ...] print(mails) # 獲取最新一封郵件, 注意索引號從1開始: index = len(mails) print(index,'2222') resp, lines, octets = server.retr(284) # lines存儲了郵件的原始文本的每一行, # 可以獲得整個(gè)郵件的原始文本: msg_content = b'\r\n'.join(lines).decode('utf-8') # 稍后解析出郵件: msg = Parser().parsestr(msg_content) # print(msg) messageObject = Parser().parsestr(msg_content) msgDate = messageObject["date"] print(678,msgDate) # 可以根據(jù)郵件索引號直接從服務(wù)器刪除郵件: # server.dele(index) # 關(guān)閉連接:
這里的index是全部的郵件數(shù)量,server.retr(284),從最新的開始,retr里面?zhèn)髂阋x取的第幾個(gè),
try: GMT_FORMAT = '%a, %d %b %Y %H:%M:%S +0800 (CST)' new_date = datetime.strptime(msgDate, GMT_FORMAT) except: GMT_FORMAT = '%a, %d %b %Y %H:%M:%S +0800' new_date = datetime.strptime(msgDate, GMT_FORMAT) name_list.append(str(new_date)) print(datetime.strptime(msgDate, GMT_FORMAT))
直接讀取出來的時(shí)間是Tue, 17 Sep 2019 16:21:25 +0800(CST) 這種形式,這里是轉(zhuǎn)為為2019-09-17 16:21:25這種亞子。哈哈
繼續(xù)
def print_info(msg, indent=0): if indent == 0: for header in ['From', 'To', 'Subject']: value = msg.get(header, '') if value: if header == 'Subject': value = decode_str(value) else: hdr, addr = parseaddr(value) name = decode_str(hdr) value = u'%s <%s>' % (name, addr) print('7777',name) print('%s%s: %s' % (' ' * indent, header, value)) if (msg.is_multipart()): parts = msg.get_payload() for n, part in enumerate(parts): print('%spart %s' % (' ' * indent, n)) print('%s--------------------' % (' ' * indent)) print_info(part, indent + 1) else: content_type = msg.get_content_type() if content_type == 'text/plain' or content_type == 'text/html': content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: content = content.decode(charset) print('%sText: %s' % (' ' * indent, content + '...')) else: print('%sAttachment: %s' % (' ' * indent, content_type))
這里就是讀取郵件內(nèi)容了
繼續(xù)還有兩個(gè)函數(shù)
def decode_str(s): value, charset = decode_header(s)[0] if charset: value = value.decode(charset) return value def guess_charset(msg): charset = msg.get_charset() if charset is None: content_type = msg.get('Content-Type', '').lower() pos = content_type.find('charset=') if pos >= 0: charset = content_type[pos + 8:].strip() return charset print_info(msg = msg) print(name_list) server.quit()
就這樣了
總結(jié)
以上所述是小編給大家介紹的使用python獲取郵箱郵件的設(shè)置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
- python3+selenium實(shí)現(xiàn)qq郵箱登陸并發(fā)送郵件功能
- python3+selenium實(shí)現(xiàn)126郵箱登陸并發(fā)送郵件功能
- Python發(fā)送郵件功能示例【使用QQ郵箱】
- python3實(shí)現(xiàn)163郵箱SMTP發(fā)送郵件
- python3利用smtplib通過qq郵箱發(fā)送郵件方法示例
- Python實(shí)現(xiàn)讀取郵箱中的郵件功能示例【含文本及附件】
- Python利用QQ郵箱發(fā)送郵件的實(shí)現(xiàn)方法(分享)
- Python實(shí)現(xiàn)給qq郵箱發(fā)送郵件的方法
相關(guān)文章
python標(biāo)準(zhǔn)庫之time模塊的語法與簡單使用
在平常的代碼中,我們常常需要與時(shí)間打交道,那么在Python中,與時(shí)間處理有關(guān)的模塊就包括:time、datetime以及calendar,這篇文章主要給大家介紹了關(guān)于python標(biāo)準(zhǔn)庫之time模塊的語法與使用的相關(guān)資料,需要的朋友可以參考下2021-08-086行Python代碼實(shí)現(xiàn)進(jìn)度條效果(Progress、tqdm、alive-progress
這篇文章主要介紹了6行Python代碼實(shí)現(xiàn)進(jìn)度條效果(Progress、tqdm、alive-progress和PySimpleGUI庫),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python實(shí)現(xiàn)圖像增強(qiáng)算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖像增強(qiáng)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Django微信小程序后臺開發(fā)教程的實(shí)現(xiàn)
這篇文章主要介紹了Django微信小程序后臺開發(fā)教程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼
孤立森林(isolation?Forest)是一種高效的異常檢測算法,它和隨機(jī)森林類似,但每次選擇劃分屬性和劃分點(diǎn)(值)時(shí)都是隨機(jī)的,而不是根據(jù)信息增益或基尼指數(shù)來選擇。本文將用Python實(shí)現(xiàn)這一算法,需要的可以參考一下2022-03-03親手教你用Python打造一款摸魚倒計(jì)時(shí)界面
前段時(shí)間在微博看到一段摸魚人的倒計(jì)時(shí)模板,感覺很有意思,于是我用了一個(gè)小時(shí)的時(shí)間寫一個(gè)頁面出來,下面小編把實(shí)現(xiàn)過程分享給大家,對Python摸魚倒計(jì)時(shí)界面感興趣的朋友一起看看吧2021-12-12Python中順序表原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Python中順序表原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python順序表的概念、原理及增刪查等相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Python通過內(nèi)置函數(shù)和自寫算法DFS實(shí)現(xiàn)排列組合
這篇文章主要介紹了Python通過內(nèi)置函數(shù)和自寫算法DFS實(shí)現(xiàn)排列組合,排列組合是數(shù)學(xué)中的一種常見的計(jì)算方法,用于求出從給定的元素中選取若干個(gè)元素的所有可能的排列或組合。在Python中,有多種方式可以實(shí)現(xiàn)排列組合的計(jì)算,需要的朋友可以參考下2023-05-05Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法
Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會出現(xiàn)報(bào)錯(cuò),接下來通過本文給大家介紹Ubuntu16.04 安裝python的問題,一起看看吧2021-09-09