如何监听Gmail新邮件并保存至文件?求非Google Cloud的免费方案
无需付费Google Cloud监听Gmail新邮件并保存到文件的替代方案
以下是两种无需依赖付费Google Cloud服务的可行方案,覆盖技术与非技术用户需求:
1. Python脚本(基于IMAP协议)
这是完全免费且可自定义的方案,通过Gmail开放的IMAP协议实现邮件监听与保存:
- 前置准备:
- 打开Gmail设置 →「转发和POP/IMAP」,启用IMAP功能
- 若账号开启两步验证,需在Google账号安全设置中生成应用专用密码(替代原邮箱密码用于脚本登录)
- 实现步骤:
编写Python脚本连接Gmail的IMAP服务器,搜索未读邮件并保存为EML文件(完整保留邮件格式),示例代码如下:import imaplib import email from email.header import decode_header import os # 替换为你的配置信息 GMAIL_USER = "your-email@gmail.com" GMAIL_PASS = "your-app-password-or-regular-password" SAVE_DIR = "./gmail_saved_emails" # 创建保存目录 os.makedirs(SAVE_DIR, exist_ok=True) # 连接IMAP服务器 with imaplib.IMAP4_SSL("imap.gmail.com") as mail: mail.login(GMAIL_USER, GMAIL_PASS) mail.select("inbox") # 搜索未读邮件 _, msg_ids = mail.search(None, "UNSEEN") for msg_id in msg_ids[0].split(): _, msg_data = mail.fetch(msg_id, "(RFC822)") for part in msg_data: if isinstance(part, tuple): msg = email.message_from_bytes(part[1]) # 解码邮件主题作为文件名(替换非法字符) subject, enc = decode_header(msg["Subject"])[0] if isinstance(subject, bytes): subject = subject.decode(enc or "utf-8") safe_subject = subject.replace("/", "_").replace("\\", "_") save_path = f"{SAVE_DIR}/{safe_subject}.eml" # 保存邮件到文件 with open(save_path, "wb") as f: f.write(part[1]) # 标记邮件为已读(可选) mail.store(msg_id, "+FLAGS", "\\Seen")- 用定时任务(Windows任务计划、Linux cron、macOS LaunchAgent)定期运行脚本,即可实现持续监听新邮件。
2. 桌面邮件客户端自动过滤规则
适合非技术用户,通过主流邮件客户端的内置规则自动保存新邮件:
以Thunderbird为例:
- 安装Thunderbird并添加Gmail账户(配置为IMAP模式)
- 打开「工具」→「消息过滤器」,点击「新建」
- 设置过滤条件:选择「当邮件到达时」,可额外添加发件人、主题等筛选条件
- 设置动作:选择「保存到文件」,指定保存路径和文件格式(支持EML、纯文本、HTML等)
- 启用过滤器后,新邮件会自动保存到指定目录,全程无需代码或付费服务
内容的提问来源于stack exchange,提问作者Yiftach Cohen
相关产品推荐
相关产品推荐

