扔掉邮件客户端?Docker搭建Cypht,Web端聚合所有邮箱,真香!
你每天要切换几个邮箱?Gmail、公司邮箱、个人域名邮箱、甚至还挂着两个企业邮箱……登录一遍、切一遍、找一遍,半天就没了。更别提第三方邮件客户端要么收费,要么偷偷上传你的账号信息。
如果有一种方式,能用一个界面同时管理所有邮箱,还完全开源、数据自己掌控、不安装任何客户端软件——你愿意试试吗?
Cypht是什么?
一款轻量级、模块化、开源自托管的 Web 邮件客户端,基于 PHP+JavaScript 开发,采用 LGPL v2 协议,核心优势是多账户聚合与统一管理Cypht。它可将多个 IMAP 邮箱(如 Gmail、Outlook)与 RSS 订阅集中到一个界面,提供统一收件箱、未读、已发送、星标等聚合视图,同时支持标准 IMAP 文件夹管理与 SMTP 发信。
核心亮点:
多邮箱合一:IMAP/POP/EWS 多账号合并收件箱,不用切账号
邮件 + RSS 同屏:邮件与订阅资讯混在一起浏览
跨邮箱操作:邮件在不同邮箱之间拖拽移动
轻量化自托管:PHP 架构、内存占用小,Docker 易部署
隐私可控:邮箱凭据存自己服务器,无第三方收集数据
可选 PGP 加密、2FA、LDAP 登录
image-20260602003705148项目地址:https://github.com/cypht-org/cypht
Cypht安装部署
<#&!53#&!>1、创建本地目录mkdir -p /opt/cypht /opt/cypht/data
cd /opt/cypht
2、Docker Compose方式
version: '3.9'
services:
cypht:
image: cypht/cypht:2.9.0 #2.7.0
container_name: cypht
restart: unless-stopped
ports:
- "8017:80"
environment:
- AUTH_USERNAME=admin
- AUTH_PASSWORD=123456
- DB_CONNECTION_TYPE=host
- DB_DRIVER=mysql
- DB_HOST=192.168.50.50
- DB_NAME=cypht
- DB_USER=root
- DB_PASS=123456
- SESSION_TYPE=DB
- USER_CONFIG_TYPE=DB
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
参数说明:
AUTH_USERNAME=admin:网页后台默认登录用户名AUTH_PASSWORD=123456:网页默认登录密码DB_CONNECTION_TYPE=host:采用外部独立数据库,非容器内置库DB_DRIVER=mysql:数据库驱动选用 mysqlDB_HOST=192.168.50.50:外部 MySQL 服务器 IPDB_NAME=cypht:提前手动创建的数据库库名DB_USER=root:MySQL 登录账号DB_PASS=123456:MySQL 登录密码SESSION_TYPE=DB:用户会话信息存入 MySQL,不存本地文件USER_CONFIG_TYPE=DB:用户邮箱配置、界面设置全部入库持久化
目录映射:
./data/log/nginx:/var/log/nginx:Nginx 运行日志落地宿主机./data/log/php:/var/log/php:PHP 程序日志落地宿主机./data/log/supervisord:/var/log/supervisord:进程托管服务日志持久化./data/fonts:/usr/local/share/cypht/site/fonts:字体文件宿主机保存,重装容器不丢失字体
其他说明:
依赖:需提前在 192.168.50.50 创建空数据库
cypht数据:用户邮箱配置存在外部 MySQL,挂载仅保存日志和字体
内置Mysql的一键启动Compose配置
version: '3.9'
services:
cypht:
image: cypht/cypht:2.9.0
container_name: cypht
restart: unless-stopped
ports:
- "8017:80"
environment:
- AUTH_USERNAME=admin
- AUTH_PASSWORD=123456
- DB_CONNECTION_TYPE=host
- DB_DRIVER=mysql
- DB_HOST=mysql
- DB_NAME=cypht
- DB_USER=cypht
- DB_PASS=123456
- SESSION_TYPE=DB
- USER_CONFIG_TYPE=DB
volumes:
- ./data/log/nginx:/var/log/nginx
- ./data/log/php:/var/log/php
- ./data/fonts:/usr/local/share/cypht/site/fonts
depends_on:
- mysql
mysql:
image: mysql:8.0
container_name: cypht-mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=cypht
- MYSQL_USER=cypht
- MYSQL_PASSWORD=123456
volumes:
- ./data/mysql:/var/lib/mysql
3、使用Docker命令行创建Cypht容器方式
1)下载Docker镜像
docker pull cypht/cypht:2.9.0
2)创建和启动容器
docker run -d
--name cypht
--restart unless-stopped
-p 8017:80
-e AUTH_USERNAME=admin
-e AUTH_PASSWORD=123456
-e DB_CONNECTION_TYPE=host
-e DB_DRIVER=mysql
-e DB_HOST=192.168.50.50
-e DB_NAME=cypht
-e DB_USER=root
-e DB_PASS=123456
-e SESSION_TYPE=DB
-e USER_CONFIG_TYPE=DB
-v ./data/log/nginx:/var/log/nginx
-v ./data/log/php:/var/log/php
-v ./data/log/supervisord:/var/log/supervisord
-v ./data/fonts:/usr/local/share/cypht/site/fonts
cypht/cypht:2.9.0
使用教程
1)Cypht初始化
使用创建的初始账户登录
image-20260602010211629 - AUTH_USERNAME=admin
- AUTH_PASSWORD=123456
设置界面语言为中文:
左边侧边栏-Settings-Site-General
找到Language,设置语言为中文
image-20260602010556458点击Save保存配置
界面介绍:
左栏(导航):功能入口(收件箱、已发、星标、联系人、日历、RSS、设置);可折叠
中栏(列表):邮件 / RSS 条目,标题 + 摘要 + 时间 + 发件人;支持全局搜索
右栏(内容):邮件正文 / RSS 全文,支持 HTML / 纯文本切换
2)添加邮箱账户
内置一些邮箱模板,像163邮箱、QQ邮箱可通过自定义IMAP/SMTP 服务器设置
设置:服务器-添加电子邮件账户
自定义:IMAP-JMAP-SMTP Servers设置
image-202606020904365883)添加订阅
支持通过RSS地址添加订阅
支持批量导入OPML文件的方式批量添加订阅
image-20260602090636351作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
