Skip to content

spance/Gmail-Notification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gmail Notification

对已授权的Gmail邮箱检查分析,发现新邮件后发送未读提醒短信(通过配置的短信接口)。

利用Google oauth接口和授权凭证查询收件箱,对未读邮件进行分析,同一未读邮件在6小时内不会提醒超过2次(未来这些策略参数可调整),避免重复短信的困扰。

每5分钟检查一次,支持多账户,理论上最多可以配置3472222个用户,因为Google API允许每个Client每天可调用1亿次。

扫描和通信日志在logs目录下,请定时检查并反馈错误

sms

适用场景

  • 不想公开Gmail密码给第三方的
  • 不便持续Gmail在线的
  • 不想使用邮件客户端残留邮件副本
  • 想要更及时的通知
  • 想要更爽的自定义通知
  • 想要更安全、更具隐私性的方式

本方案就是考虑上面的场景需求,做专业的私人定制。

关于隐私和安全性

邮箱通常是高度隐私和保密的,因此强烈不建议使用第三方成品服务。

应将该开源程序部署到可信服务器上,专属为自己或亲朋好友安全私密的运行。

Google oauth接口是安全、可靠的,程序通过Google接口获得用户授权,不接触密码,并且用户可随时在Google accounts中吊销授权。

考虑到存储安全,程序不会读取和存储任何邮件内容包括标题,仅通过邮件id做识别和分析。

考虑到传输安全,短信中不含有与邮件相关的任何内容,仅包括未读数量,并对mail地址做了遮掩。

如果运行程序的服务器是安全的,则整个运作逻辑都是安全和可靠的。

运行条件

  1. 一个可访问Google和可运行Python的Linux环境
  2. 一个基于http/https的短信接口

该应用是开源免费的,但所需的两个运行条件可能需要向相应的服务商购买。

注: 不要在国内服务器上部署(无法访问Google API)。

配置和运行

目前通过console交互配置许可授权,在.conf中配置接口参数,自动通过cron-job做定时检查。

1、客户端授权

首先,需要得到Google client credential,这是允许该程序访问Google的必要条件。

访问: https://console.developers.google.com/project

开启API并创建Client Credential,下载json文件,命名并放置到 credentials\app_client_secret.json

g_api_1 g_api_2

2、配置

请咨询短信接口服务商,根据服务商提供的方法,配置到gnoti.conf中,通常都是GET或POST到服务商api地址。

详细配置说明请参看gnoti.conf中的注释说明。

3、部署应用

安装依赖关系:sudo pip install --upgrade google-api-python-client python-crontab

将整个程序放置到具有读写权限的文件夹中,并运行python gnoti.py --help查看命令帮助。

help

4、账户授权

运行python gnoti.py -a XXXX@gmail.com以向导方式开始账户配置。

将生成一个许可Url,请账户所有者在其浏览器上执行并同意,将会跳到redirect_uri上(示例中配置到localhost上仅获取code部分)

再取其code部分粘贴到console中,将会调用Google API获取授权。

再输入接收短信的电话号码,完成账户配置。

setup

一切无误后,程序将会每5分钟检查一次用户邮箱,未读且未被提醒超过2次的邮件(参照策略),将会统计和发送提醒短信。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages