1. 如何使用python對郵件進行實時收取

我用poplib寫了個收取郵件的腳本,但是總提示「poplib.error_proto: -ERR 登錄太頻繁!」,不知道是不是刷新太頻繁了,可是怎麼做到實時收取呢?比如那些郵件客戶端
你研究 推送伺服器,長鏈接 等等關鍵詞,搜索一下,我沒有完整做過,只是知道有這么個概念,所以只能幫你到這里。
伺服器不允許就不要那麼頻繁了

2. 如何用python抽取指定文本文件中所有的郵件地址

==========get_email.py========

#coding:utf-8
import re
'''
獲取郵件地襲址主要就是依靠強大的正則表達式
'''

mailre = re.compile(r"(\w+@\w+\.\w+)")
f = open("a.txt",'r')

content = f.read()
print "\n".join(mailre.findall(content))

===========

======a.txt==========
我的郵件地址是[email protected]

mail by: [email protected]

aklwjfoiewuoiu [email protected]
=============

%python get_email.py
[email protected]
[email protected]
[email protected]

3. 我用python通過imap收取郵件時為什麼能收取

想用python做一個很簡單的接收郵件的功能,只看python的官方doc(http://docs.python.org/2/library/imaplib.html)真的很不好懂,經過google之,探索之,稍微總結一下:

要使用imap接收郵件,當然要導入imaplib拉.
import imaplib

然後按常規的,建立鏈接→登錄
conn = imaplib.IMAP4("imap.xxx.com",143)

conn.login("userName","password")

然後我想查看收件箱的郵件,咋辦呢?要先選擇一個目錄,收件箱默認名稱是"INBOX",IMAP是支持創建文件夾,查看其它文件夾的,如果是自己新建的文件夾,那麼名稱一般會是"INBOX.新建文件夾",不同的郵箱可能表示方式不一樣,如果你不知道的話,那運行conn.list()查看所有的文件夾.
conn.select("INBOX")

選擇後,然後查看文件夾,注意,IMAP的查看其實是一個搜索的過程,IMAP的原始命令是search all(大概的),在python里這么用:
type, data = conn.search(None, 'ALL')

然後返回的是這個收件箱里所有郵件的編號,按接收時間升序排列,最後的表示最近.
search這個很鬼麻煩,因為官方文檔里沒講這個函數的第二個參數怎麼用,於是找了下,可以填的命令有:
http://www.afterlogic.com/mailbee-net/docs/MailBee.ImapMail.Imap.Search_overload_1.html
於是如果我想找Essh郵件的話,使用
type, data = conn.search(None, '(SUBJECT "Essh")')

裡面要用一個括弧,代表是一個查詢條件,可以同時指定多個查詢條件,例如FROM xxxx SUBJECT "aaa",注意,命令要用括弧罩住(痛苦的嘗試)
search第一個參數是charset的意思,填None表示用默認ASCII,
data里獲取到的是一個只有一個字元串元素的數組,包含很多數字,用空格隔開
['1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103'

於是想獲取最後一封的做法是:
msgList = data[0].split()
last = msgList[len(msgList) - 1]

然後把那個郵件獲取回來,用fetch函數
例子:
conn.fetch(last, '(RFC822.SIZE BODY[HEADER.FIELDS (SUBJECT)])')

但是返回的是一串MIME編碼的東東,看不懂,如果能像eml那一操作一封郵件就好了.
方法是有的,用email庫.
import email

然後以RFC822獲取郵件格式,再用email.message_from_string轉換為message對象.就可以當message操作了,(http://docs.python.org/2/library/email.message.html)
type,data=connect.fetch(msgList[len(msgList)-1],'(RFC822)')
msg=email.message_from_string(data[0][1])
content=msg.get_payload(decode=True)

最後content得到就是郵件的內容了

4. 如何用Python取出電子郵件@後面的部分

import re

email = input('請輸入一個電子郵箱:')

print(re.sub('.+@', '', email))

5. python 郵件時間如何快速處理

可以使用datetime包的strptime函數

fromdatetimeimportdatetime
s='Wed,8Jul201515:18:12+0800(UTC)'
date=datetime.strptime(s[5:24],'%d%b%Y%H:%M:%S')
print('Month:',date.month)
print('Day:',date.day)

'%d %b %Y %H:%M:%S',是時間字元串,每一個%x對應一種類型的時間

會解析成datetime類型

6. Python編寫一個程序 可以讀取郵件日誌(mbox.txt),統計每個郵件發出的郵件數量

inbox.txt的格式怎樣的

7. 如何使用python電子郵件獲取解碼附件文件

import email.utils

msg = email.message_from_string(self.request.body)#http://docs.python.org/2/library/email.parser.html
部分在msg.walk()中:版
ctype = part.get_content_type()
如果權['image / jpeg','image / png']中的ctype為
image_file = part.get_payload(decode = True)
image_file_name = part。 get_filename()

8. python編寫查看是否有新郵件的小工具

--------------------getNewMailNum----------------------
#-*-encoding:utf-8-*-
#author:rayment
#CreateDate:2012-06-24
importimaplib
importre
importInfoOutPut

defgmail_checker(mailhost,username,password,flag=0):


i=imaplib.IMAP4_SSL(mailhost)
try:
i.login(username,password)
x,y=i.status('INBOX','(MESSAGESUNSEEN)')
messages=int(re.search('MESSAGESs+(d+)',y[0]).group(1))
unseen=int(re.search('UNSEENs+(d+)',y[0]).group(1))
#print"-------------------------------------------------"
#print"%s:total%imessages,%iunseen."%(username,messages,
unseen)
outstr=[]
outstr.append(username)
outstr.append(':total')
outstr.append(str(messages))
outstr.append('messages,')
outstr.append(str(unseen))
outstr.append('unseen.')

InfoOutPut.InfoOutPut(''.join(outstr),flag)
finally:
i.logout()

if__name__=='__main__':
gmail_checker('imap.163.com','accout','xxxxxx',1)
gmail_checker('imap.126.com','accout','xxxxxx')

--------------------checkMail------------------------
#-*-encoding:utf-8-*-
#author:rayment
#CreateDate:2012-06-24
importimaplib
importemail
importInfoOutPut

importsys
reload(sys)
sys.setdefaultencoding('gbk')


defmy_unicode(s,encoding):
if
encoding:
returnunicode(s,encoding)
else:
returnunicode(s)


defcheckMail(mailhost,accout,password):
con=
imaplib.IMAP4_SSL(mailhost)
con.login(accout,password)
try:
con.select('INBOX',readonly=True)
flag,data=con.search(None,'ALL')
InfoOutPut.initOutPut()
InfoOutPut.InfoOutPut('Accout:'+accout)
fornumin(data[0]).split(''):
typ,msg_data=con.fetch(num,'(RFC822)')
InfoOutPut.InfoOutPut('No:'+num)
forresponse_partinmsg_data:
ifisinstance(response_part,tuple):
msg=email.message_from_string(response_part[1])
ls=msg["From"].split('')
strfrom=''
if(len(ls)==2):
fromname=email.Header.decode_header((ls[0]).strip('"'))
strfrom='From:'+my_unicode(fromname[0][0],fromname[0][1])+
ls[1]
InfoOutPut.InfoOutPut(strfrom,2)
else:
strfrom='From:'+msg["From"]
InfoOutPut.InfoOutPut(strfrom,2)
strdate='Date:'+msg["Date"]
InfoOutPut.InfoOutPut(strdate,2)
subject=email.Header.decode_header(msg["Subject"])
strsub='Subject:'+my_unicode(subject[0][0],
subject[0][1])
InfoOutPut.InfoOutPut(strsub)
finally:
try:
con.close()
except:
pass
con.logout()

if__name__=='__main__':
checkMail('imap.126.com','accout','xxxx')
#checkMail('imap.gmail.com','accout','xxxxx')

------------------------------------------------

9. 如何用爬蟲爬取郵件附件python

我也遇到了這個問題,我的解決方法是,先將列表按照時間排序後再抓取,每次抓取完記錄最後一條的url,下載再抓取時,遇到這個url,抓取就自動退出。如果解決了您的問題請點贊!如果未解決請繼續追問!

10. Python 收發郵件 和 刪除郵件 怎麼做到

郵件傳輸的SMTP協議,並根據該協議,利用了Python的『smtplib』和『email『模塊,完成郵件的成功發送。
簡單搭的報警郵件伺服器沒有UI,用FOXMAIL登錄獲取郵件頭刪除過慢,寫個python腳本快速清空郵件
#!/usr/bin/python
import poplib
def main():
uugame=poplib.POP3('mail.url.com',110)
uugame.user('[email protected]')
uugame.pass_('dicc1234')
print uugame.stat()
mailmax=uugame.stat()[0]
for i in range(mailmax):
uugame.dele(i+1)
print uugame.stat()
uugame.quit()
if __name__=="__main__":
main()