本文将介绍如何配置本仓库的“自动邮件转发”功能。整个过程分为三个主要步骤:获取 Google Token、配置 GitHub Secrets、启动 Actions。
为了调用 Gmail 的 API,我们需要首先在 Google Cloud 中创建一个项目,并生成一个 credentials.json 凭据,最后在本地运行脚本生成 Token。
已有项目可以直接跳转到 1.2。
- 访问 Google Cloud Console。
- 点击页面顶部的项目选择器(或 "Select a project"),然后选择 "New Project"。
- 给项目起个名字(例如
Mail-Bridge),然后点击 "Create"。
- 确保已选中刚才创建的项目。
- 在左侧菜单中,前往 "API和服务" (APIs & Services)。
- 在搜索栏输入 "Gmail API"。
- 点击搜索结果中的 Gmail API,然后点击 "Enable" 启用它。
- 前往 "API和服务" > "OAuth权限请求页面" (OAuth consent screen)。
- 用户类型 (User Type) 选择 "External" (个人 Gmail) 或 "Internal" (Workspace 组织账号),点击 "Create"。
- 填写必填项:
- App name:
Mail Bridge - User support email: 您的 Gmail。
- Developer contact info: 您的 Gmail。
- App name:
- 点击 "Save and Continue"。在 "Scopes" 页面无需特别选择,直接点击 "Save and Continue"。
- 重要 (如果选了 External): 在 "目标对象 > 测试用户" 页面,点击 "Add Users",输入您需要接收邮件的 Gmail 地址。
- 前往 "APIs & Services" > "Credentials"。
- 点击顶部的 "+ Create Credentials",选择 "OAuth client ID"。
- Application type 选择 "Desktop App" (桌面应用)。
- Name 可以随意填写(如
My Python Script),点击 "Create"。 - 弹窗会出现 "OAuth client created",点击 "Download JSON" 下载文件。
- 重命名文件: 将下载下来的那个带有长串字符的文件重命名为
credentials.json。
- 将
credentials.json放到本仓库src/目录下(与gen_token.py同级)。 - 在本地终端中,首先安装依赖:
pip install -r requirements.txt - 运行生成脚本:
python src/gen_token.py - 此时浏览器会自动弹出授权页面。请务必勾选所有权限(包括“查看您的电子邮件”,这是为了支持邮件长对话折叠功能)。
- 授权成功后,当前目录下会生成一个
token.json。该文件包含了token, refresh_token等字段。请妥善保管,不要提交到公开仓库中!
接下来,我们需要将敏感信息配置到 GitHub 仓库的安全环境变量中。
进入您的 GitHub 仓库页面,点击 Settings -> Secrets and variables -> Actions,在 Repository secrets 区域点击 New repository secret。
创建一个 Secret:
- Name: 填写
GMAIL_TOKEN_JSON - Secret: 使用文本编辑器打开您在第一步中生成的
token.json,将里面的全部内容复制并粘贴到此处。
创建一个名为 ACCOUNTS_JSON 的 Secret,用于配置需要被“捕获”的第三方邮件账号。请严格按照以下 JSON 数组格式填写(可增减账号):
[
{
"name": "Tencent_Exmail",
"imap_server": "imap.exmail.qq.com",
"imap_port": 993,
"email": "username@example_tencent.email",
"password": "YOUR_TENCENT_PASSWORD"
},
{
"name": "Aliyun_Exmail",
"imap_server": "imap.qiye.aliyun.com",
"imap_port": 993,
"email": "username@example_ali.com",
"password": "YOUR_ALIYUN_PASSWORD"
}
]
提示:这里的 password 通常是第三方邮箱提供的“客户端专用密码(授权码)”,而不是您的网页登录密码。
- 确保您的仓库中包含
.github/workflows/mail_bridge.yml文件并已推送到主分支(main或master)。 - 点击仓库顶部的 Actions 标签页。
- 在左侧边栏选中 IMAP to Gmail Bridge。
- 点击右侧的 Run workflow 按钮进行第一次手动测试。
- 展开运行日志,如果看到
[+] Successfully inserted message to Gmail,则配置完美成功!此后,GitHub 会按照设定每 30 分钟自动为您拉取一次邮件。