Gmail Notification自動Gmail未讀檢查和短信提醒

什麼時候應該檢查Gmail郵箱有沒有未讀郵件,大概都要不停的登錄刷新。 怎麼能讓新郵件到達給個主動提醒,是我最近一直思考的問題。 因而查了Google的接口,很是豐富很是豐滿,不愧是業界第一郵箱服務。 因此就誕生這個項目Gmail Notificationpython

https://github.com/spance/Gmail-Notificationgit

Gmail Notification

對已許可的Gmail郵箱進行檢查,發現新郵件後經過已配置的短信接口發送未讀郵件的提醒短信。github

利用Google oauth接口訪問已受權用戶的收件箱,對未讀郵件進行分析併發送提醒,同一未讀郵件在6小時內不會提醒超過2次(將來這些策略參數可調整),避免長時間未讀郵件形成大量短信的騷擾。json

目前,經過console交互方式配置許可受權,在.conf文件中定義接口參數,自動經過cron-job作定時檢查。api

每5分鐘檢查一次,支持多帳戶,理論上最多能夠配置3472222個用戶,由於Google API容許每一個Client天天可調用1億次。瀏覽器

掃描和通訊日誌在logs目錄下,請定時檢查並反饋錯誤。安全

sms

關於隱私和安全性

郵箱帳戶一般是私密性的,所以不建議使用第三方服務,應該將程序部署到可信服務器上,專屬的爲本身或朋友私密的運行。服務器

Google oauth接口是安全、可靠的,程序經過Google接口得到用戶受權,不接觸密碼,而且用戶可隨時在Google accounts中吊銷受權。併發

考慮到存儲安全,程序不會讀取和存儲任何郵件內容包括標題,僅經過郵件id作識別和分析。app

考慮到傳輸安全,發送的短信中不含有與郵件相關的任何內容,僅包括未讀郵件數量,而且mail地址通過了遮掩。

若是運行程序的服務器是安全的,則整個運做邏輯都是安全和可靠的。

配置和運行

一、客戶端受權

首先,須要獲得Google client credential,這是訪問Google API的必要條件。 訪問: https://console.developers.google.com/project 開啓API並建立Client credential,而後下載json文件,命名並放置到credentials\app_client_secret.json

g_api_1 g_api_2

二、配置

取得一個可用的短信接口(應該基於http/https)及訪問辦法,請諮詢你的短信接口服務商。 根據服務商提供的方法,配置到gnoti.conf中,一般都是GET或POST到服務商api地址。 詳細配置說明請參看gnoti.conf中的註釋說明。

三、部署應用

安裝依賴關係:pip install --upgrade google-api-python-client python-crontab 將整個程序放置到具備讀寫權限的文件夾中,並運行python gnoti.py --help查看命令幫助。

help

四、帳戶受權

運行python gnoti.py -a XXXX@gmail.com以嚮導方式開始帳戶配置。 將會生成一個許可url,請帳戶全部者在其瀏覽器上執行並贊成,將會跳到redirect_uri上(示例中配置到localhost上僅獲取code部分) 再把Url上的code部分粘貼到console中,將會調用Google API獲取受權。 再輸入接收短信的電話號碼,完成帳戶配置。

setup

一切無誤後,程序將會每5分鐘檢查一次用戶郵箱,未讀且未被提醒超過2次的郵件,將會統計和發送提醒短信。

注: 目前大陸是沒法訪問到Google Api的,所以不要在國內服務器上部署。

相關文章
相關標籤/搜索