搭建 SMTP IMAP 代理服务
注意
如果你使用了 resend, 可直接使用 resend 的 SMTP 服务,不需要使用此服务
为什么需要 SMTP IMAP 代理服务
SMTP IMAP 的应用场景更加广泛
如何搭建 SMTP IMAP 代理服务
Local Run
bash
cd smtp_proxy_server/
# 复制配置文件, 并修改配置文件
# 你的 worker 地址,proxy_url=https://temp-email-api.xxx.xxx
# 你的 SMTP 服务端口,port=8025
cp .env.example .env
python3 -m venv venv
./venv/bin/python3 -m pip install -r requirements.txt
./venv/bin/python3 main.pyDocker Run
bash
cd smtp_proxy_server/
docker-compose up -d修改 docker-compose.yaml 中的环境变量, 注意选择合适的 tag
proxy_url 为 worker 的 URL 地址
yaml
services:
smtp_proxy_server:
image: ghcr.io/dreamhunter2333/cloudflare_temp_email/smtp_proxy_server:latest
# build:
# context: .
# dockerfile: dockerfile
container_name: "smtp_proxy_server"
ports:
- "8025:8025"
- "11143:11143"
environment:
- proxy_url=https://temp-email-api.xxx.xxx
- port=8025
- imap_port=11143环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
proxy_url | http://localhost:8787 | Worker 后端 URL |
port | 8025 | SMTP 端口 |
imap_port | 11143 | IMAP 端口 |
smtp_tls_cert | 空 | SMTP TLS 证书文件路径(PEM),配置后启用 STARTTLS |
smtp_tls_key | 空 | SMTP TLS 私钥文件路径(PEM) |
imap_tls_cert | 空 | IMAP TLS 证书文件路径(PEM),配置后启用 STARTTLS |
imap_tls_key | 空 | IMAP TLS 私钥文件路径(PEM) |
imap_cache_size | 500 | 每个邮箱的消息缓存上限 |
imap_http_timeout | 30.0 | 后端 HTTP 请求超时时间(秒) |
启用 STARTTLS
分别配置 SMTP 和 IMAP 的 TLS 证书环境变量后,对应服务会自动支持 STARTTLS。SMTP 和 IMAP 可以使用同一套证书。
bash
# .env 示例
smtp_tls_cert=/path/to/cert.pem
smtp_tls_key=/path/to/key.pem
imap_tls_cert=/path/to/cert.pem
imap_tls_key=/path/to/key.pemDocker Compose 中配置:
yaml
environment:
- smtp_tls_cert=/certs/cert.pem
- smtp_tls_key=/certs/key.pem
- imap_tls_cert=/certs/cert.pem
- imap_tls_key=/certs/key.pem
volumes:
- ./certs:/certs:roIMAP 登录方式
支持两种登录方式:
| 方式 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| JWT 凭证 | 邮箱地址 | JWT token | 从前端获取的地址凭证,直接认证 |
| 地址+密码 | 邮箱地址 | 地址密码 | 通过后端 /api/address_login 验证 |
系统会自动识别密码格式:以 eyJ 开头的三段式字符串视为 JWT,其他视为密码并调用后端验证。
使用 Thunderbird 登录
下载 Thunderbird
密码填写 邮箱地址凭证 或 邮箱地址密码
