IFTTT的Gmail权限失效后自动推送电子书的方法

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-00

自动推送的目的

之前订阅过几份电子杂志,会定期将新刊以附件形式发送到我的 Gmail 邮箱,由于我现在主要使用 Kindle PaperWhiter3 来阅读这些杂志,不管是手动转发邮件,还是归档备份杂志文件,都有些费时费事,于是利用 IFTTT 和 Dropbox 做了个自动流程。

旧方案

利用 Gmail 的过滤器,通过发件人、是否存在附件等条件,自动将这些邮件加上 KindlePush 标签。Gmail 的过滤器可以设置自动转发邮件到指定邮箱,但是需要验证收件邮箱以防滥用或地址有误,在设置自动转发邮箱时,Gmail 会发送包含验证码的邮件给收件邮箱,从收件邮箱获取验证码填写到 Gmail 设置中即可。

但是 Kindle 的接收邮箱是无法识别邮件正文的,导致无法获取验证码,只好通过 IFTTT 来中转。

在 IFTTT 创建一个监控 Gmail 邮件标签的 Applet,一旦邮件加了 KindlePush 标签,自动将其附件存储到 Dropbox 指定文件夹 KindlePush 中作为存档,方便后续手动或者自动归档电子书。

再创建一个 Applet 监控 Dropbox 的 KindlePush 文件夹,一旦有新文件,就通过 Gmail 将其作为附件,发送邮件到 Kindle 的推送邮箱,稍后就能在 Kindle 上收到电子书。

出现问题

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-01

2019 年 3 月 22 日,Google 通知用户将关闭 IFTTT 读取 Google 帐号数据的权限,包括 Gmail 邮件内容,以保护用户隐私。这导致「If This Then That」中的「This」将无法使用 Gmail。也就无法监控邮件添加标签了,导致原有方案失效。

新方案 1

Dropbox 不支持从 Gmail 接收邮件并存储附件,后来我找到一个折中的方案:

Send to Dropbox

用 Send to Dropbox 关联 Dropbox 后,会在 Dropbox 新建一个附件目录,并提供一个 sendtodropbox.com 后缀的邮箱地址,发送带附件的邮件到该邮箱,即可存储附件到 Dropbox 中。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-02

默认设置下,会将附件以文件名直接保存在 Dropbox 应用文件夹的 Attachments 子文件夹中,Send to Dropbox 支持用邮箱地址、标题、日期等作为层级子文件夹来归类附件保存路径,但这里不需要,保持默认就好。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-03

在 Options 中勾选「Include plain text email body(if available)」选项,这一步是为了接收 Gmail 添加自动转发邮箱地址时收取验证码。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-04

先在 Gmail 设置的「转发和 POP/IMAP」中添加 Send to Dropbox 提供的邮箱作为转发地址,稍后就能在 Dropbox 相应文件夹中看到一个 body.txt 文本文件,里面包含了验证码,复制验证码到 Gmail 设置中完成验证。

利用 Gmail 的过滤器,将符合要求的邮件转发到 Send to Dropbox。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-05

在上一步验证通过后,记得到 Send to Dropbox 设置中取消「Include plain text email body(if available)」选项,不然每次都会多收到一份 body.txt。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-06

在 IFTTT 创建一个 Applet,监控 Dropbox 的 Attachments 文件夹,一旦出现新文件,就将其转发到 Kindle 推送邮箱。

到此完成需求。

调试过程中,发现一个小问题:如果附件名字带有中文,Send to Dropbox 转存到 Dropbox 会去掉中文只剩符号(括号、横杆等),好在我需要这样操作的电子书文件名都不含中文,影响不大。

新方案 2

原有旧方案的失效是因为无法监控 Gmail 中邮件是否存在指定标签,才有了「新方案 1」,而利用和 IFTTT 类似的服务 Zapier,可以实现旧方案中将带有 KindlePush 标签的邮件附件转存到 Dropbox 指定文件夹这一步骤。

use-ifttt-gmail-dropbox-auto-push-ebook-to-kindle-07

这样后续就可以让 IFTTT 监控该文件夹,一有新文件就推送到 Kindle。

Zapier 免费账户支持创建 5 个流程,每个流程只能存在两个步骤,够用了,而且该方案的自由度要高于「新方案 1」。

发表评论

电子邮件地址不会被公开。 必填项已用*标注