搭建自己的网页邮箱聚合系统——Cypht
以前一直使用的网易邮箱大师,确实很好用,但是免费版上限是10个邮箱,最近我的邮箱超过10个了,所以就想着换到了thunderbird,不过内存占用比网易大200M,而且不知道是不是我配置的问题,每天开机自启动后都会提示邮箱登录失败,会弹出好几个重试的弹框。
所以我就想着能不能在自己的服务器搭一个直接用网页访问邮件客户端,于是就找到了Cypht
环境准备
首先要有一台云服务器,可以选择雨云服务器,这是我目前用着还不错的,对新用户很友好,另外雨云还有云应用,可以直接部署Roundcube(也是一个邮件客户端,功能和cypht一样)
安装docker和docker compose
手动安装:Debian / Ubuntu 安装 Docker 以及 Docker Compose 教程 - 烧饼博客
或者去轩辕镜像,里面有一键安装的教程

安装mysql
有面板的用面板装,没有面板的按Debian 11/12 安装与配置 MySQL 8.x (2025 版)装,不过太麻烦了,建议直接用邮箱去SQLPub Serverless注册个免费的mysql,免费额度够用了,而且是国内的,速度快
有了mysql之后,在本地装一个navicat,测试一下能不能连接
在navicat中点击左上角的连接,然后选择mysql

在这里输入你的数据库地址、端口、用户名、密码

点击左下角的测试连接,能连上的话再点击右下角的确定
如果是自己部署或者宝塔部署的mysql,记得在这里新建一个名叫cypht的数据库,sqlpub申请的数据库就不用创建了,直接用就行
右键这个连接,点击新建数据库

这样选,然后确定即可

开始安装
创建所需目录
1
2
3
4mkdir -p /home/cypht/data/log/{nginx,supervisord,php}
mkdir /home/cypht/data/fonts
mkdir /home/cypht/data/user_settings
mkdir /home/cypht/data/user_attachments进入目录
1
cd /home/cypht
用vim编写配置文件,没有vim就
apt install vim -y安装一下,一般都有1
vim docker-compose.yml
按
i进入编辑模式,shift+insert将以下内容粘贴到里面1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19version: '3'
services:
cypht:
image: cypht/cypht:latest # 现在最新版是2.7.0
container_name: cypht
restart: unless-stopped
ports:
- "8088:80"
env_file:
- ./cypht-prod.env
volumes:
- ./data/log/nginx:/var/log/nginx
- ./data/log/php:/var/log/php
- ./data/log/supervisord:/var/log/supervisord
- ./data/fonts:/usr/local/share/cypht/site/fonts
# 应用数据持久化目录
- ./data/user_settings:/var/lib/hm3/users # 用户配置和设置
- ./data/user_attachments:/var/lib/hm3/attachments # 邮件附件然后
esc退出编辑模型,输入:进入末行模式,然后输入wq回车即可完成保存并退出的操作编写环境变量文件
1
vim cypht-prod.env
复制以下内容到cypht-prod.env
1
2
3
4
5
6
7
8
9
10
11
12
13
14AUTH_USERNAME=admin # 登录用户名
AUTH_PASSWORD=admin # 登录密码
DB_CONNECTION_TYPE=host
DB_DRIVER=mysql
DB_HOST=your.mysql.com # 数据库地址
DB_PORT=3306 # 数据库端口
DB_NAME=cypht # 数据库名称
DB_USER=root # 数据库用户名
DB_PASS='123456' # 数据库密码
ENABLE_REDIS=false
SESSION_TYPE=DB
USER_CONFIG_TYPE=DB也是保存退出即可
目前用这些环境变量就够了,其他环境变量可参考https://github.com/cypht-org/cypht/blob/master/.env.example
要了解每个变量的含义,参见这里的描述:https://github.com/cypht-org/cypht/blob/master/config/app.php
启动容器
1
docker compose up -d
如果镜像拉取不下来的话,去轩辕镜像搞个加速链接
或者用毫秒镜像的加速连接(不过显示是307天前更新,也不知道还好不好使):docker pull docker.1ms.run/cypht/cypht:latest
不管是用哪个加速链接拉取的镜像,到最后都要打个标签,不然配置文件不认
1
docker tag docker.1ms.run/cypht/cypht:latest cypht/cypht:latest
去navicat看看数据库有没有表生成,出现这4张表就说明启动基本没问题,有问题的话用命令
docker compose logs -f看看容器的日志,然后丢给AI(:))
去云服务器厂商的后台放行8088端口
然后用ip:8088就能访问cypht了

开始使用
输入
cypht-prod.env中配置的用户名和密码即可登录登录之后是英文的,先去setting➡️site➡️general➡️language,选择Chinese Simplified,然后划到最下面点击保存,就变成中文了


之后添加邮箱,选择服务器➡️IMAP-JMAP-SMTP Servers➡️Add a new server(我这里已经加了很多邮箱了)

比如先加个qq邮箱,这里需要授权码,授权码要去qq邮箱里获取
进入QQ邮箱,点击右上角的设置➡️账号与安全

会跳转到另一个页面,选择安全设置,找到
POP3/IMAP/SMTP/Exchange/CardDAV 服务,这里我是已经开启了,也已经生成过授权码了,这个授权码生成的时候要自己找个地方记住,因为只会显示一次
得到授权码之后,回到cypht填写邮箱信息,这里需要的密码就是授权码,填写完成后点击下一步

如果只是当做收件服务器的话就不用勾选Sender account,勾选的话可以在cypht里进行发件操作。
端口都是用的加密端口,所要选择使用TLS

点击finish后,左侧列表就会出现
电子邮件这个菜单,点击去就能看到你添加的邮箱了
添加其他邮箱也是一样的操作,163、189、139等等,他们的imap和smtp服务器百度查一下就知道了,记得用加密的端口,选择使用TLS
谷歌邮箱的话还需要给服务器配置代理,否则服务器连不上外网,无法登录谷歌邮箱。当然,如果你是香港服务器那最好了,国内访问快,又能连外网
配置代理用这个项目nelvko/clash-for-linux-install: 😼 优雅地使用基于 clash/mihomo 的代理环境,之后我再抽个时间写它的教程吧
last but not least,一定要保存!!!
当你添加完邮箱之后,有没有发现左上角多了个小标志?点一下就会跳转到保存界面,输入你的登录密码,然后保存

或者直接到设置➡️保存,然后进行保存
就是因为这个保存太隐蔽了,导致我每次添加完邮箱后发现换个浏览器登录数据就没了,搞了一天,搜教程,问AI,都没有提到这个保存,最后想到这个左上角的小东西,点进去我就茅厕顿开了 :)
