什麼時候應該檢查Gmail郵箱有沒有未讀郵件,大概都要不停的登錄刷新。 怎麼能讓新郵件到達給個主動提醒,是我最近一直思考的問題。 因而查了Google的接口,很是豐富很是豐滿,不愧是業界第一郵箱服務。 因此就誕生這個項目Gmail Notificationpython
https://github.com/spance/Gmail-Notificationgit
對已許可的Gmail郵箱進行檢查,發現新郵件後經過已配置的短信接口發送未讀郵件的提醒短信。github
利用Google oauth接口訪問已受權用戶的收件箱,對未讀郵件進行分析併發送提醒,同一未讀郵件在6小時內不會提醒超過2次(將來這些策略參數可調整),避免長時間未讀郵件形成大量短信的騷擾。json
目前,經過console交互方式配置許可受權,在.conf文件中定義接口參數,自動經過cron-job作定時檢查。api
每5分鐘檢查一次,支持多帳戶,理論上最多能夠配置3472222個用戶,由於Google API容許每一個Client天天可調用1億次。瀏覽器
掃描和通訊日誌在logs目錄下,請定時檢查並反饋錯誤。安全
郵箱帳戶一般是私密性的,所以不建議使用第三方服務,應該將程序部署到可信服務器上,專屬的爲本身或朋友私密的運行。服務器
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
二、配置
取得一個可用的短信接口(應該基於http/https)及訪問辦法,請諮詢你的短信接口服務商。 根據服務商提供的方法,配置到gnoti.conf
中,一般都是GET或POST到服務商api地址。 詳細配置說明請參看gnoti.conf
中的註釋說明。
三、部署應用
安裝依賴關係:pip install --upgrade google-api-python-client python-crontab
將整個程序放置到具備讀寫權限的文件夾中,並運行python gnoti.py --help
查看命令幫助。
四、帳戶受權
運行python gnoti.py -a XXXX@gmail.com
以嚮導方式開始帳戶配置。 將會生成一個許可url,請帳戶全部者在其瀏覽器上執行並贊成,將會跳到redirect_uri上(示例中配置到localhost上僅獲取code部分) 再把Url上的code部分粘貼到console中,將會調用Google API獲取受權。 再輸入接收短信的電話號碼,完成帳戶配置。
一切無誤後,程序將會每5分鐘檢查一次用戶郵箱,未讀且未被提醒超過2次的郵件,將會統計和發送提醒短信。
注: 目前大陸是沒法訪問到Google Api的,所以不要在國內服務器上部署。