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位,但我记不住就是记不住),又不能自定义。
记不住,也不想每次登录都复制粘贴一次
notion image

于是干脆研究了一下:
给域名套上 Cloudflare Zero Trust 认证,
再让 AI 写了个自动登录页面
 
部署完后,默认主页直接指向这个自动登录页——
认证通过 → 后台自动填表 → 跳进邮箱。
 
原来的登录页也没删,特意保留在 /index.php
需要时仍可手动登录。
 
两全其美。

操作步骤

在开始之前,请确保你已经准备好了以下东西:
  1. 一个域名(已托管 Cloudflare)
  1. Cloudflare 账户(废话)
  1. Resend 账号
  1. 支持容器的运行环境(例如 Docker、Kubernetes、ClawCloud 等)
  1. 一个能收信的邮箱(如 QQ 邮箱)
至于域名怎么搞、Cloudflare 邮箱转发和 Resend 发信怎么配,那几个视频已经手把手教了,我这儿就不啰嗦啦。

1.部署Roundcube

1.1 准备工作

在开始部署之前,你需要先拿到一个关键凭证:
🔑 邮箱密码或授权码
💡
不同邮箱有不同的验证方式,大部分主流邮箱在登录第三方客户端时,都需要使用“授权码”或“客户端专用密码”。 例如:QQ、网易、Outlook、Gmail等
少数邮箱支持直接使用密码登录。
本教程将以QQ为例,其他邮箱可自行查找对应的获取方式。
📮 QQ 邮箱授权码获取步骤
  1. 登录 QQ 邮箱网页版
  1. 点击右上角头像,进入账号与安全
notion image
  1. 在左侧导航栏点击 安全设置,然后找到 “生成授权码” 按钮
⚠️
如果之前未开启授权码功能,请按页面指引完成短信验证即可开启(如图二所示)
notion image
 
notion image
  1. 完成短信验证
点击“生成授权码”后,需短信验证。
  • 微信扫码 → 自动发送 → 点击 “我已发送”
  • 无法扫码?可手动发送或选其他方式
notion image
notion image
验证通过后,系统生成 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 位授权码,实在太烦了——接下来我们就来干掉它。
 
博客建好辣!一个自动登录,和ai合作搞了三天三夜
Loading...