type
Post
status
Published
date
Feb 12, 2026
slug
Roundcube 邮箱自动登录:Resend 发信 + QQ 收信,告别授权码
summary
Roundcube 邮箱自动登录:Resend 发信 + QQ 收信,告别授权码
tags
开发
分享
教程
category
技术分享
icon
password
前言
花了 3 天,终于和 AI 一起整完了个人邮箱的 Cloudflare 认证和自动登录。
演示视频
起因其实很简单:
发件(
SMTP)和收件(IMAP)在我这是两套不同的服务。收信用
Cloudflare 邮箱的 catch‑all 转发到 QQ,发信则通过
Resend 平台,这里还得感谢一下UP主@技术爬爬虾
正是刷到了他的几个视频,才把域名和邮箱的底层配通的:
1.【2024最新免费域名教程,可托管CF,零失败率,解决所有坑点。】
2.【如何低成本获得一个域名,托管Cloudflare免费DNS】
3.【白嫖Cloudflare无限多企业邮箱,可收发邮件】
不过爬爬虾那期邮箱视频教的是用 API 发信,我试下来还是觉得有点重。
后来发现 Resend 其实也提供 SMTP 服务,配置更简单——索性直接改用 SMTP 了。
省去了自己写代码调 API 的麻烦,配齐了整个个人邮箱。爽了一下子。
然后就被那个登录折腾了。
QQ 邮箱用的是「账号 + 授权码」,
授权码老长一串(其实也就16位,但我记不住就是记不住),又不能自定义。
记不住,也不想每次登录都复制粘贴一次。

于是干脆研究了一下:
给域名套上
Cloudflare Zero Trust 认证,再让 AI 写了个自动登录页面。
部署完后,默认主页直接指向这个自动登录页——
认证通过 → 后台自动填表 → 跳进邮箱。
原来的登录页也没删,特意保留在
/index.php,需要时仍可手动登录。
两全其美。
操作步骤
在开始之前,请确保你已经准备好了以下东西:
- 一个域名(已托管 Cloudflare)
Cloudflare 账户(废话)
- Resend 账号
- 支持容器的运行环境(例如 Docker、Kubernetes、ClawCloud 等)
- 一个能收信的邮箱(如 QQ 邮箱)
至于域名怎么搞、Cloudflare 邮箱转发和 Resend 发信怎么配,那几个视频已经手把手教了,我这儿就不啰嗦啦。
1.部署Roundcube
1.1 准备工作
在开始部署之前,你需要先拿到一个关键凭证:
🔑 邮箱密码或授权码
不同邮箱有不同的验证方式,大部分主流邮箱在登录第三方客户端时,都需要使用“授权码”或“客户端专用密码”。
例如:QQ、网易、Outlook、Gmail等
少数邮箱支持直接使用密码登录。
本教程将以QQ为例,其他邮箱可自行查找对应的获取方式。
📮 QQ 邮箱授权码获取步骤
- 登录 QQ 邮箱网页版
- 点击右上角头像,进入账号与安全

- 在左侧导航栏点击 安全设置,然后找到 “生成授权码” 按钮
如果之前未开启授权码功能,请按页面指引完成短信验证即可开启(如图二所示)


- 完成短信验证
点击“生成授权码”后,需短信验证。
- 微信扫码 → 自动发送 → 点击 “我已发送”
- 无法扫码?可手动发送或选其他方式


验证通过后,系统生成 16 位授权码,复制保存好——这就是后续登录的“密码”。
1.2 配置Docker Compose
首先,您需要创建一个目录来存放Roundcube的配置文件和Docker Compose文件。可以使用以下命令创建目录:
接下来,创建一个名为
docker-compose.yml的文件,并在其中添加以下内容:
关于 PHP 内存限制
PHP_MEMORY_LIMIT 控制着 PHP 脚本可用的最大内存。Roundcube 官方要求至少 16MB,但实际使用中,如果发送带附件的邮件或处理复杂邮件内容,建议调高。- 如果你使用的是 ClawCloud 等有免费额度的容器平台,其最低要求可能是 64M,但推荐设为 128M(即本文示例值),以获得更好的兼容性。
- 如果你在自己服务器上部署,可根据需要设置为 128M、256M 甚至更高,只要确保不超出系统可用内存即可。
1.3 启动容器
在终端中,运行以下命令启动服务:
首次启动会拉取镜像,稍等片刻。运行成功后,可以用以下命令查看服务状态:
如果一切正常,你应该能看到
roundcube 和 db 两个容器状态为 Up。1.4 验证 Roundcube
容器跑起来之后,先别急着高兴——得试试能不能真的收发邮件。
1.4.1 登录
打开浏览器,访问你的 Roundcube 地址(比如
http://你的服务器IP:8080),你会看到这样的登录页面:如果无法访问:请检查云平台的安全组(防火墙)是否放行了映射的端口(本例为
8080)。不同平台操作略有不同,一般是在控制台添加一条入方向规则,允许 TCP 端口 8080 访问。详细排查见第 5 章。输入:
- 用户名:你的完整 QQ 邮箱地址(例如
495923517@qq.com)
- 密码:上一节生成的 16 位授权码(不是 QQ 密码!)
点击登录,如果能顺利进入收件箱,恭喜你,IMAP 配置没问题。
⚠️ 如果登录失败,先别慌。最常见的原因是:
- 授权码复制多了空格
- 环境变量中
ROUNDCUBEMAIL_DEFAULT_HOST忘了加ssl://前缀
- QQ 邮箱的 IMAP 服务未开启(回去检查一下)
详细排查方法见第 5 章
1.4.2 测试发信
点击页面上方的 “写邮件”,给自己常用的另一个邮箱发一封测试邮件:
- 收件人:你的其他邮箱(比如 Gmail、Outlook 等)
- 主题:Roundcube 发信测试
- 正文:随便写点啥
点击发送,稍等片刻,去你的另一个邮箱看看有没有收到。
如果能收到,说明 Resend SMTP 配置正确,发信通道也通了。
⚠️ 如果发信失败,检查:
ROUNDCUBEMAIL_SMTP_PASS填成了 QQ 授权码,应该用 Resend API Key
- Resend 后台有没有验证发信域名
- 防火墙是否允许容器访问外网(一般默认允许)
同样,详细排查在第 5 章。
1.4.4 下一步
收信和发信都正常了?很好,Roundcube 的基础功能已经就绪。
但每次登录都要复制那串 16 位授权码,实在太烦了——接下来我们就来干掉它。

