iT邦幫忙

1

python 讀取 Gmail 信件

饅頭 2017-11-08 10:37:2118241 瀏覽

最近在研究用 python(2.7.13) 來讀取 Gmail
希望收到特定標題(title)的信可以有一個回報機制
但是在讀取信件的時候有個疑問需要解惑><

def fetch_messages(user, pwd):
    imapper = easyimap.connect('imap.gmail.com', user, pwd)
    for mail_id in imapper.listids(limit=6):  //用數字限制讀取信件
        mail = imapper.mail(mail_id)
        print (mail.from_addr)
        print (mail.to.encode)
        print (mail.cc)
        print (mail.uid)
        print (mail.date)
        print (mail.title)
        print (mail.body)

目前看到兩種方式,但是我都會卡在不知道要下多少數字

  1. 用 limit 讀取最新的信件數(上面程式碼的用法)
  2. 將信件編碼,再設定讀取範圍式的方式(將信件編號(獨立不重複))

我想做一段時間看一次信箱的狀況但是就會遇到

  1. 想用時間判斷哪些信件是還沒有讀取
    *會先讀取信件才得到時間,這樣以後信件量大會影響速度
  2. 用編碼(uid)看
    *但是下一次執行後不知道要從哪裡開始

不考慮用 已讀 未讀 判斷,因為會查看收信狀況,但是不希望影響這個作業進行
有沒有人可以給我一些想法或意見可以解決我現在的窘境QQ

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
froce
iT邦大師 1 級 ‧ 2017-11-08 11:38:52
最佳解答

1.https://developers.google.com/api-client-library/python/apis/gmail/v1
google有放python的GMAIL api client,找一找應該還有更方便的wrapper
https://pypi.python.org/pypi/gmail-api-wrapper/0.1.1a2

2.應該可以用api裡面的watch去接 topicName。
https://developers.google.com/resources/api-libraries/documentation/gmail/v1/python/latest/gmail_v1.users.html#watch

3.有放api就用api做,不要用imap去自己接,用python就盡量不要自造車輪了。

饅頭 iT邦新手 4 級 ‧ 2017-11-09 13:33:30 檢舉
  1. 我現在也有用,它的安全性比較高,但是因為在下載附件那裏我用布出來所以就卡住了QQ
  2. 這個看起還很厲害!!!! 我再來試試
    目前我也有想到利用資料庫的方式,把讀過的紀錄存進資料庫,下一次要用的時候先去資料庫裡面看紀錄,就可以從還沒讀過的下手!!

我要發表回答

立即登入回答