使用 Fetchmail
看起来配置设置为轮询 IMAP 服务器,但随后指定了 POP3 协议。尝试这样的~/.fetchmailrc
文件:
set postmaster "local_user"
set daemon 600
poll pop.gmail.com with proto POP3
user 'gmail_user_name' there with password 'app_password' is local_user here options ssl fetchlimit 400
在哪里:
local_user
是一些无法投递的邮件应该去的本地帐户(永久失败之前的“最后努力”)。
gmail_user_name
@
是电子邮件地址左侧的所有内容。
app_password
是一个专门生成的密码,仅限于 gmail 应用程序(转到此处:https ://myaccount.google.com/并单击Security
,然后app passwords
生成新的应用程序密码)
此时要做什么将取决于您的本地设置。Fetchmail 将... 获取邮件(清楚地).... 然后将其递送到本地机器的递送系统。如果您有 sendmail(一个相当安全的选择),这可能会起作用:
$ fetchmail -d0 -avNk -m "/usr/sbin/sendmail -i -f %F -- %T" pop.gmail.com
邮件应该开始流入。可以使用mail
命令读取邮件或从/var/mail/[username]
. 这可能无法一口气完成所有事情。如果地址已经积累了少量的历史,它很可能不会。让它完成并检查它是否按预期工作。如果一切看起来都不错,那么是时候fetchmail
作为守护进程启动并让它下载整个邮箱了。首先,配置fetchmail
适当的轮询间隔和批量大小设置1。
- 确认轮询间隔在
~/.fetchmailrc
线路中配置daemon 600
(即 10 分钟轮询间隔)。
- 确认在该节的部分下
fetchlimit 400
设置了轮询选项。这是每次轮询要获取的最大消息数。~/.fetchmailrc
options
poll pop.gmail.com
- 使用与上述相同的命令启动 fetchmail,但省略
-d0
switch。
Fetchmail 应该作为一个真正的守护进程启动,并继续定期下载成批的邮件,直到下载整个邮箱。如果您不希望它在下次重新启动之前继续同步,您需要记住终止守护进程。
使用谷歌外卖
您可以使用Google Takeout轻松完成此操作。登录,单击列表顶部的“取消选择”选项,然后向下滚动Mail
并检查。您可以选择在文件中获取.zip
数据.tgz
。当存档可供下载时,他们会向您发送一封电子邮件。它被打包在一个mbox
文件中,但转换为其他格式非常简单。
这可能是完成一次性导出的最简单方法,我认为他们也可以选择设置定期导出。与直接使用开发人员 API 相比,它可能没有提供那么多的控制,但它的麻烦要少得多。
1:我相信谷歌有一些速率限制,所以我添加了一些步骤来适应这些限制。这些是保守值,因为我不确切知道限制是什么(甚至不确定它们是否存在)。如果您知道更多,或者想研究它,请将这些值调整为您认为最好的值。