一个用于把邮箱新邮件自动转发到 Telegram、PushPlus,或两者同时接收的 Docker 项目。
支持多种邮箱服务商,包括但不限于:Gmail、QQ 邮箱、163 邮箱、126 邮箱、yeah.net、Outlook、Hotmail、Yahoo、新浪、搜狐、移动、电信、阿里云、iCloud 等。
支持:
telegram / pushplus / both这个项目会定时轮询 Gmail 收件箱(INBOX):
默认消息内容包含:
GMAIL_APP_PASSWORD 不是你的邮箱登录密码。
它是邮箱服务商给第三方程序用的应用专用密码或授权码,专门用于 IMAP / SMTP / 第三方客户端登录。
好处:
前提条件:必须先开启 Google 账号的两步验证。
abcd efgh ijkl mnopGMAIL_APP_PASSWORD=abcdefghijklmnopabcdefghijklmnop本项目支持自动识别常见邮箱的 IMAP 服务器配置,你只需要填写邮箱地址和授权码,无需手动配置 IMAP 服务器和端口。
支持的邮箱服务商:
| 邮箱服务商 | 域名 | IMAP 服务器 | 端口 |
|---|---|---|---|
| Gmail | gmail.com, googlemail.com | imap.gmail.com | 993 |
| QQ 邮箱 | qq.com, vip.qq.com, foxmail.com | imap.qq.com | 993 |
| 163 邮箱 | 163.com | imap.163.com | 993 |
| 126 邮箱 | 126.com | imap.126.com | 993 |
| yeah.net | yeah.net | imap.yeah.net | 993 |
| Outlook | outlook.com, hotmail.com, live.com | outlook.office365.com | 993 |
| Yahoo | yahoo.com, yahoo.com.cn | imap.mail.yahoo.com | 993 |
| 新浪邮箱 | sina.com, sina.cn | imap.sina.com / imap.sina.cn | 993 |
| 搜狐邮箱 | sohu.com | imap.sohu.com | 993 |
| 移动邮箱 | 139.com | imap.139.com | 993 |
| 电信邮箱 | 189.cn | imap.189.cn | 993 |
| 阿里云邮箱 | aliyun.com | imap.aliyun.com | 993 |
| iCloud | icloud.com, me.com | imap.mail.me.com | 993 |
如果你使用的是上述邮箱,只需要填写邮箱地址和授权码,程序会自动识别对应的 IMAP 配置。
如果你使用的是其他邮箱,或需要自定义配置,可以手动指定:
IMAP_SERVER=imap.example.com
IMAP_PORT=993
在 Telegram 中找:
@BotFather创建一个 Bot,拿到:
TELEGRAM_BOT_TOKEN例如:
TELEGRAM_BOT_TOKEN=123456789:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
先给你的机器人发一条消息,然后访问:
https://api.telegram.org/bot<你的BOT_TOKEN>/getUpdates
在返回 JSON 里找到:
message.chat.id
例如:
TELEGRAM_CHAT_ID=123456789
PushPlus 文档:
PushPlus 最基本的发送接口是:
https://www.pushplus.plus/sendPOST最小请求示例:
{
"token": "你的token",
"title": "标题",
"content": "消息内容"
}
最少需要:
PUSHPLUS_TOKEN=your_pushplus_token
可选参数:
PUSHPLUS_TEMPLATE=html
PUSHPLUS_CHANNEL=wechat
PUSHPLUS_TOPIC=
PUSHPLUS_TO=
说明:
PUSHPLUS_TEMPLATE
html / txt / markdown / jsonPUSHPLUS_CHANNEL
wechatwebhook / mail / cp / app 等PUSHPLUS_TOPIC
PUSHPLUS_TO
PushPlus 文档里明确提到:
905900所以如果你准备用 PushPlus 做高频通知,建议先看官方限制文档。
Docker Hub 方式运行时,你通常会通过:
--env-filedocker run -e传入这些参数。
[email protected]
GMAIL_APP_PASSWORD=xxxxxxxxxxxxxxxx
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
RECEIVER_TYPE=telegram
可选值:
telegram:只发 Telegrampushplus:只发 PushPlusboth:两边都发TELEGRAM_BOT_TOKEN=xxxxx:xxxxx
TELEGRAM_CHAT_ID=123456789
当 RECEIVER_TYPE=telegram 或 both 时需要。
PUSHPLUS_TOKEN=your_pushplus_token
PUSHPLUS_TEMPLATE=html
PUSHPLUS_CHANNEL=wechat
PUSHPLUS_TOPIC=
PUSHPLUS_TO=
当 RECEIVER_TYPE=pushplus 或 both 时需要。
POLL_SECONDS=10
MARK_SEEN=true
FORWARD_HISTORY=false
# [email protected]
说明:
MARK_SEEN:转发成功后是否标记为已读FORWARD_HISTORY:是否转发历史未读邮件
false(默认):只转发启动后收到的新邮件true:启动时会把所有未读邮件都转发一遍FORWARD_FROM_FILTER:只转发指定发件人/域名,留空则不过滤TRANSLATE_ENABLED=true
TRANSLATE_API_BASE=https://qianfan.baidubce.com/v2
TRANSLATE_API_KEY=your_translate_api_key
TRANSLATE_MODEL=ernie-lite-pro-128k
镜像示例:
hsqbh/gmail:latest
--env-file先准备一个配置文件,比如:
nano gmail2tg.env
写入:
[email protected]
GMAIL_APP_PASSWORD=your_app_password
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
RECEIVER_TYPE=both
TELEGRAM_BOT_TOKEN=123456789:bot_token
TELEGRAM_CHAT_ID=123456789
PUSHPLUS_TOKEN=your_pushplus_token
PUSHPLUS_TEMPLATE=html
PUSHPLUS_CHANNEL=wechat
PUSHPLUS_TOPIC=
PUSHPLUS_TO=
POLL_SECONDS=10
MARK_SEEN=true
TRANSLATE_ENABLED=true
TRANSLATE_API_BASE=https://qianfan.baidubce.com/v2
TRANSLATE_API_KEY=your_translate_key
TRANSLATE_MODEL=ernie-lite-pro-128k
启动:
docker run -d \
--name gmail2tg \
--restart unless-stopped \
--env-file ./gmail2tg.env \
hsqbh/gmail:latest
docker run -edocker run -d \
--name gmail2tg \
--restart unless-stopped \
-e GMAIL_EMAIL="[email protected]" \
-e GMAIL_APP_PASSWORD="your_app_password" \
-e IMAP_SERVER="imap.gmail.com" \
-e IMAP_PORT="993" \
-e RECEIVER_TYPE="both" \
-e TELEGRAM_BOT_TOKEN="123456789:bot_token" \
-e TELEGRAM_CHAT_ID="123456789" \
-e PUSHPLUS_TOKEN="your_pushplus_token" \
-e PUSHPLUS_TEMPLATE="html" \
-e PUSHPLUS_CHANNEL="wechat" \
-e PUSHPLUS_TOPIC="" \
-e PUSHPLUS_TO="" \
-e POLL_SECONDS="10" \
-e MARK_SEEN="true" \
-e TRANSLATE_ENABLED="true" \
-e TRANSLATE_API_BASE="https://qianfan.baidubce.com/v2" \
-e TRANSLATE_API_KEY="your_translate_key" \
-e TRANSLATE_MODEL="ernie-lite-pro-128k" \
hsqbh/gmail:latest
注意:Docker 传环境变量用的是 -e,不是 -E。
docker logs -f gmail2tg
docker stop gmail2tg
docker start gmail2tg
docker restart gmail2tg
docker rm -f gmail2tg
docker pull hsqbh/gmail:latest
docker rm -f gmail2tg
然后重新执行 docker run ...。
程序启动时会先记录当前所有未读邮件 ID,把它们当作历史存量:
如果设置了:
只有发件人中包含 @example.com 的邮件才会转发。
如果翻译接口报错:
本项目附带:
LICENSE(MIT License)GMAIL_APP_PASSWORD、TELEGRAM_BOT_TOKEN、PUSHPLUS_TOKEN、TRANSLATE_API_KEY 都属于敏感信息Content type
Image
Digest
sha256:6ad4dfd6b…
Size
44.4 MB
Last updated
6 months ago
docker pull hsqbh/gmail