文档章节

Gmail Notification自动Gmail未读检查和短信提醒

Spance
 Spance
发布于 2014/09/18 13:45
字数 962
阅读 419
收藏 2

何时应该检查Gmail邮箱有没有未读邮件,大概都要不停的登陆刷新。 怎么能让新邮件到达给个主动提醒,是我最近一直思考的问题。 于是查了Google的接口,非常丰富非常丰满,不愧是业界第一邮箱服务。 所以就诞生这个项目Gmail Notification

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

Gmail Notification

对已许可的Gmail邮箱进行检查,发现新邮件后通过已配置的短信接口发送未读邮件的提醒短信。

利用Google oauth接口访问已授权用户的收件箱,对未读邮件进行分析并发送提醒,同一未读邮件在6小时内不会提醒超过2次(未来这些策略参数可调整),避免长时间未读邮件造成大量短信的骚扰。

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

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

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

sms

关于隐私和安全性

邮箱账户通常是私密性的,因此不建议使用第三方服务,应该将程序部署到可信服务器上,专属的为自己或朋友私密的运行。

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

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

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

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

配置和运行

1、客户端授权

首先,需要得到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

2、配置

取得一个可用的短信接口(应该基于http/https)及访问办法,请咨询你的短信接口服务商。 根据服务商提供的方法,配置到gnoti.conf中,通常都是GET或POST到服务商api地址。 详细配置说明请参看gnoti.conf中的注释说明。

3、部署应用

安装依赖关系: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部分) 再把Url上的code部分粘贴到console中,将会调用Google API获取授权。 再输入接收短信的电话号码,完成账户配置。

setup

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

注: 目前大陆是无法访问到Google Api的,因此不要在国内服务器上部署。

© 著作权归作者所有

Spance
粉丝 42
博文 6
码字总数 5603
作品 0
其他
私信 提问
加载中

评论(2)

Spance
Spance

引用来自“kslr”的评论

楼主又见面了
不好意思 提示一下上次是?
kslr
kslr
楼主又见面了
One Number

One Number这个扩展正是为了解决这个问题而来,从此我们只需要一个图标就可以查看四个Google服务的未读信息数目了。安装这个扩展后,点 击扩展图标跳转到Google输入Google账户用户名和密码即...

匿名
2009/12/29
997
0
Gmail邮件提醒--cGmail

cGmail 也叫 CheckGmail 是一个Linux下的用来监控 Gmail 邮箱并提醒新邮件达到的小软件。 cGmail 支持 Gmail 帐号,也支持 POP3 和 IMAP 协议,也就是说可以支持绝大多数邮箱的新邮件提醒,G...

匿名
2009/12/02
2.5K
0
如何使用 HTML5 的 Notification API

HTML5 已经不是什么新玩意儿,每个人都多少听说过一些HTML5的特性。大多数人认为HTML5无非就是一些像是header, footer, nav, article, section等一样新的语义标签而已,但是很多人不知道它有...

彭博
2012/10/28
12.5K
9
双因认证又被攻陷,这次连 Gmail 也受害

6 月份 Reddit 系统遭到黑客入侵,在该事件中,攻击者绕开了 Reddit 通过短信实现的双因认证系统,给仍在使用短信来部署双因认证的互联网服务敲响了警钟。而近日,Gmail 的双因认证系统也被攻...

h4cd
2018/12/20
0
25
Gmail 新功能:根据优先级对邮件进行排序

在当前的信息社会,Email 的应用越来越广泛,随之而来的则是每个人收件箱里面的新邮件越来越多。虽然 Gmail 可以帮助你过滤掉大部分纯粹的垃圾邮件,但是余下的还需要大家花上一番力气才能找...

红薯
2010/08/31
2.8K
5

没有更多内容

加载失败,请刷新页面

加载更多

vue预渲染

prerender-spa-plugin 安装prerender-spa-plugin (插件使用见npm官网)[https://www.npmjs.com/package/prerender-spa-plugin] npm install prerender-spa-plugin --save-dev 配置prerender-s......

莫西摩西
41分钟前
1
0
Command模式

https://www.cnblogs.com/devinzhang/archive/2012/01/06/2315235.html

南桥北木
今天
1
0
由于PostgreSQL9.x二进制输出格式默认值改变导致的读取图片错误

今天从社区邮件看到一个这样的问题,感觉很有意思,在这分享给大家~具体如下: 问题现象: 作者有一个很老的Java应用,当时后端采用的PostgreSQL数据库版本为8.x,该系统除了正常的数据增删...

闻术苑
今天
2
0
导入sql时出现Invalid default value for 'create_time'报错处理方法

当运行SQL会出现:[Err] 1067 - Invalid default value for 'create_time',是因为Mysql版本不同,如果版本不 < 5.6请去的话报错的处理方法如下: 方法 :alter table table_name modify cre......

writeademo
今天
1
0
对ssm(spring,springmvc,mybatis)的了解总结

ssm框架现在是java web开发的三个主流框架 ,其实严格来算只算是两个框架,因为springmvc属于spring框架 ,是spring的一个mvc子框架 那么我们下面就来了解一下三大框架把 一 .Spring spring...

咸鱼-李y
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部