什么时候 Gmail 里有了未读邮件?有没有主动提醒的办法?如果你也这么想,那么就部署一个 Gmail Notification 帮助我们检查 Gmail 邮箱。

2014-09-18 13:38:25 +08:00
 spance
何时应该检查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的,因此不要在国内服务器上部署。
8888 次点击
所在节点    分享创造
50 条回复
princeofwales
2014-09-18 13:40:38 +08:00
chrome上有扩展
android上有官方app
新邮件都会及时提醒啊
很多时间app比chrome还要快
wzxjohn
2014-09-18 13:42:40 +08:00
@princeofwales 实际上墙内人民装啥App都没用。。。
jsonline
2014-09-18 13:42:45 +08:00
邮件客户端啊。。。。
surftheair
2014-09-18 13:43:28 +08:00
电脑上用网页版,移动设备上用mailbox app,推送即时。sms就算了,不然手机要炸了
spance
2014-09-18 13:43:48 +08:00
@princeofwales
chrome扩展需要chrome一直挂代理一直开着,android app需要android挂代理。
如果需要更方便的,那就试试这个把。
20150517
2014-09-18 13:49:20 +08:00
ip装个gmail应用或者安卓手机不都有gmail提醒吗?
surftheair
2014-09-18 13:49:47 +08:00
@spance 我想说的是,在镇内既然在用gmail的肯定都是有翻墙方法的。 短信提示你有几封未读邮件真的没什么用途啊,建议探索一下其他的用途
20150517
2014-09-18 13:50:06 +08:00
@spance 代理装在网关上啊
66beta
2014-09-18 13:51:31 +08:00
xjx0524
2014-09-18 13:54:02 +08:00
我用qq邮箱设置了收取gmail邮件,然后微信又会有邮件提醒,基本上够用了
spance
2014-09-18 13:58:49 +08:00
@surftheair
@20150517
@66beta
我知道有google有扩展、有代理,都很好,我也在用。在不长时间开代理、经常转换电脑、或者时常不在电脑旁,等等,要怎么办。
我只是寻找一个新邮件到达时最省事最方便的途径,我只是想知道现在有未读邮件,至于什么时候读、用什么方式读,那就是后话了,要看当时有没有时间有没有心情。
spance
2014-09-18 14:01:41 +08:00
@xjx0524
事实上转发到139邮箱也有短信,但是这么一来对139对qq就透明了,丢失了gmail的意义了。
而且作为节操控定制控,希望给自己的提醒短信,自己可以定制,其实很简单,就是为了让自己爽而已。
MinonHeart
2014-09-18 14:04:39 +08:00
测试了一下,QQ邮箱发到Gmail后,手机Gmail在12分钟后收到了邮件,自动提醒,不需要特殊姿势。不过楼主这也不错,赞个
JoyNeop
2014-09-18 14:04:52 +08:00
IMAP/POP3 怒刷存在感……
no13bus
2014-09-18 14:06:51 +08:00
@spance 短信接口你是怎么做的?
spance
2014-09-18 14:07:55 +08:00
@JoyNeop 你体力真好,赞一个!
spance
2014-09-18 14:11:09 +08:00
@no13bus 我不提供短信接口,我也没写推荐的短信商,否则要被说打广告了。
你可以自己搜索,国内发短信的也很多,国外的也有更多。国内商发国内,大概1毛钱,国外商法国内,大概3-4毛钱。一个月发个几百条也没几个钱的,只要觉得爽花个几块钱也是值得的。
smileawei
2014-09-18 14:17:18 +08:00
ios的官方邮件客户端是可以正常收发Gmail的
no13bus
2014-09-18 14:17:29 +08:00
@spance nice.知道了。pullbullet也不错
spance
2014-09-18 14:26:30 +08:00
@smileawei 是的,只要是pop3/imap的邮件客户端,都可以收到邮件。
iOS上Mail是可以跑后台的,但是他的检查周期比较长,而且要占存储,所以我就搞了这个比较省事而且可以比较爽的办法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/134224

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX