MailBox 一键极速部署域名邮箱系统 - 完美支持 IMAP SMTP POP3(支持TLSv1.3)
简介
开源组件
安装要求
MailBox邮件系统通过脚本方式在线部署,请确保你的服务器允许访问网络。
个人邮箱部署国外 VPS 推荐,支持rDNS:
CloudCone:2核 1G(适合体验型,部署完成后建议关闭 ClamAV 病毒扫描)
CloudCone:2核 2G(完全满足配置要求)
系统:全新的 CentOS 7
、Red Hat 7
架构:aarch64
、x86_64
ARM 服务器部署已经过华为鲲鹏服务器测试通过
端口:25
、8000
、8010
、143
、993
、995
、587
、110
、465
对于腾讯云、阿里云服务器,需在服务器后台单独申请开放25
端口方可正常使用邮件服务。
腾讯云解封25端口:控制台 → 安全管控(头像处) → 25 端口解封
阿里云解封25端口:参考链接 https://developer.aliyun.com/article/701303
服务器性能要求
最低配置:1核 1G RAM
推荐配置:2核 4G RAM 或更高
开始安装
操作顺序:域名解析 → 安装 MailBox → DKIM 设置
请按照以下表格添加域名解析记录,127.0.0.1
替换成你的服务器IP地址,example.com
替换成你的域名地址。
主机记录 | 记录类型 | 记录值 | MX |
A | 127.0.0.1 | ||
@ | MX | mail.example.com | 5 |
@ | TXT | v=spf1 mx -all | |
imap | CNAME | mail.example.com | |
smtp | CNAME | mail.example.com | |
pop | CNAME | mail.example.com | |
_dmarc | TXT | v=DMARC1; p=none |
通过终端使用 root 用户执行安装指令,安装程序提示键入 域名地址 即可快速完成安装!
bash -c "$(curl -sS https://www.cooluc.com/mailbox-install.sh)"


使用命令获取 dkim key
amavisd -c /etc/amavisd/amavisd.conf showkeys

拷贝 dkim key 内容后,前往 DKIM 整理站点生成标准的 DKIM TXT 解析记录值

根据整理后输出信息,前往域名解析处添加 DKIM 域名记录值即可!

到此,MailBox 邮箱系统已经完成安装与配置!
使用方法
根据安装完成提示信息,进入后台管理页面
登录地址:http://mail.example.com:8010/
默认账户:admin
默认密码:www.cooluc.com
邮箱管理 → 添加邮箱
添加邮箱地址 admin@example.com
,设置密码后 保存,即可完成添加。
MailBox 配备 Rainloop 开源网页邮件客户端,进入
http://mail.example.com:8000/
登录即可使用。登录账号为管理后台所添加的邮箱账户。
邮箱账户管理后台 (EwoMail-Admin) & 网页邮箱后台 (Rainloop) 均为固定默认账号密码,请务必登录后台进行密码修改
邮箱账户管理后台地址:http://mail.example.com:8010/
网页邮箱后台地址:http://mail.example.com:8000/?admin
默认账号:admin
默认密码:www.cooluc.com
请务必修改以上两个后台密码!
MailBox 安装程序不设置MySQL root密码,默认为空密码,需自行进行初始 root 密码设置
使用终端执行命令行设置 MySQL root密码
mysqladmin -u root -p password 123456
123456
换成你要设置的密码,过程中会提示 Enter password:
,由于root密码为空,直接回车即可完成设置。
打开win10 邮件,添加账户 - 高级设置

Internet 电子邮件
填写邮件用户名、密码
传入电子邮件服务器:mail.example.com
账户类型:IMAP4
传出(SMTP)电子邮件服务器:smtp.example.com
完成登录
依次打开 设置 - 邮件 - 账户 - 添加账户 - 选择其它

添加邮件账户
填写账户信息 - 下一步
填写主机名、用户名、密码
收件服务器
主机名:mail.example.com
发件服务器
主机名:smtp.example.com
信息填写完毕后,点击下一步进行验证,验证通过即可使用。
维护相关
如果你的邮箱客户端支持 SSL 加密,可以参考下表,使用正确的信息设置你的邮箱客户端。
接收邮件服务器 | 服务器地址 | 端口 | SSL 加密 |
---|---|---|---|
IMAP | imap.example.com | 993 | SSL/TLS |
IMAP | imap.example.com | 143 | STARTTLS |
POP3 | pop.example.com | 110 | STARTTLS |
发送邮件服务器 | 服务器地址 | 端口 | SSL 加密 |
---|---|---|---|
SMTP | smtp.example.com | 465 | SSL/TLS |
SMTP | smtp.example.com | 587 | STARTTLS |
SMTP | mail.example.com | 25 | 无 |

默认情况下,系统会定期进行病毒数据库检查更新,但由于国内网络原因,失败率非常高。
使用终端执行病毒数据库更新命令
freshclam
数据中心为境外节点,如果服务器出现无法下载更新,可以前往 ClamAV 官网下载最新数据库手动上传更新。
前往病毒数据库下载中心,点击 Virus Database 选项,下载 main.cvd | daily.cvd | bytecode.cvd 这三个数据包文件。
下载完成后,使用 SFTP 等工具覆盖
上传到服务器 /var/lib/clamav/
文件夹上,执行以下命令行生效数据库
chown -R clamupdate:clamupdate /var/lib/clamav
systemctl restart amavisd clamd@amavisd
命令执行完成后,数据库即更新到最新,再次执行 freshclam
手动更新命令会提示当前数据库已经是最新!
备份目录:/mailbox/mail
,建议使用 tar 压缩备份确保数据的完整性。
导出数据库:通过 /mailbox/default_info.txt
文件查看 MySQL 数据库密码,使用以下命令导出数据表
mysqldump -umailbox -p密码 mailbox > mailbox.sql
邮件目录恢复:把备份的 mail
文件夹覆盖回 /mailbox/mail
目录上,使用以下命令赋予权限
chown -R vmail.vmail /mailbox/mail
数据库恢复:使用命令导入数据库备份文件
mysql -umailbox -p密码 mailbox < mailbox.sql # mailbox.sql 为之前备份的数据库文件,如果文件不在当前目录,请指定文件绝对路径
如果是重新安装后恢复数据,当前 MySQL 数据库密码同样通过 /mailbox/default_info.txt
文件获得。
目录与数据库恢复完成后,重启服务生效
systemctl restart dovecot postfix
- 当修改程序配置时,使用以下命令重启对应的服务 *
# Nginx
systemctl restart nginx@mailbox
# PHP
systemctl restart php-fpm@mailbox
# MySQL
systemctl restart mariadb.service
# Dovecot
systemctl restart dovecot
# Postfix
systemctl restart postfix
systemctl 参数说明
systemctl stop
-停止服务systemctl restart
-重启服务systemctl reload
-重载服务
编辑配置文件:/etc/amavisd/amavisd.conf
- 大约在
826
行,按以下方式添加新增域名并保存。
# Add dkim_key here.
dkim_key("example1.com", "dkim", "/mailbox/dkim/mail.pem");
dkim_key("example2.com", "dkim", "/mailbox/dkim/mail.pem");
重启 amavisd 生效
systemctl restart amavisd
添加 DKIM 记录值
使用命令获取 dkim key
amavisd -c /etc/amavisd/amavisd.conf showkeys

拷贝 dkim key 内容后,前往 DKIM 整理站点生成标准的 DKIM TXT 解析记录值
发送
或 接收
邮件。
MailBox SSL/TLS 证书位于:/mailbox/ssl/
目录
- postfix:
/mailbox/ssl/postfix
,证书签署域名应为smtp.example.com
或*.example.com
- dovecot:
/mailbox/ssl/dovecot
,证书签署域名应为imap.example.com
或*.example.com
DH密钥交换(请勿修改此文件):/mailbox/ssl/dh2048/dhparam.pem
更换证书后,通过以下命令重启服务使其生效
systemctl restart postfix dovecot
域名证书申请
- 配置 https 访问需要准备一个授信的 SSL 域名证书,可以到 免费申请或使用已有证书。
- 签署的域名:
mail.example.com
- 使用 SFTP 工具在
/mailbox/ssl/
目录上创建nginx
文件夹,把域名证书上传到/mailbox/ssl/nginx/
目录,私钥命名为mail.key
公钥命名为mail.crt
。
修改nginx配置文件
- 使用 SFTP 工具修改
/mailbox/nginx/conf/conf.d/rainloop.conf
文件内容为以下内容(建议修改前先备份,避免修改错误导致无法打开网页邮件)
server {
listen 80;
listen 443 ssl http2;
server_name mail.example.com; # mail 二级域名地址
root /mailbox/www/rainloop/;
index index.html index.htm index.php;
ssl_certificate /mailbox/ssl/nginx/mail.crt; # 域名证书绝对路径
ssl_certificate_key /mailbox/ssl/nginx/mail.key; # 证书私钥绝对路径
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_dhparam /mailbox/ssl/dh2048/dhparam.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
# 自动跳转 https
if ($scheme = http) {
return 301 https://$host$request_uri;
}
location ^~ /data {
deny all;
}
location ~ .*\.php(\/.*)*$ {
include fastcgi.conf;
fastcgi_pass unix:/mailbox/php/var/run/mailbox-fpm.sock;
}
}
修改后台内部跳转地址(用于邮箱管理页面跳转,该修改非必要)
- 编辑文件:
/mailbox/www/admin/core/config.php
- 把
'webmail_url' => 'http://mail.example.com:8000',
修改为'webmail_url' => 'https://mail.example.com',
保存即可。
重启 nginx 服务器生效 https
systemctl restart nginx@mailbox
设置 WebMail SSL/TLS 连接
- 编辑 hosts 文件:
/etc/hosts
,删除127.0.0.1 mail.example.com smtp.example.com imap.example.com
这一行并保存 - 登录 RainLoop 后台面板:
http://mail.example.com/?admin
- 点击
域名
-点击自己的域名
,IMAP和SMTP 加密选择为SSL/TLS
,点击测试,IMAP和SMTP 字体变为绿色则成功,点击更新按钮完成操作!
上述 mail.example.com 均换成自己的域名
终端执行以下命令
sed -i 's/Wants=clamd/\#Wants=clamd/g' /usr/lib/systemd/system/amavisd.service
systemctl daemon-reload
systemctl stop clamd@amavisd
systemctl disable clamd@amavisd
systemctl restart amavisd
rDNS 为可选设置项,未设置 rDNS 国内全邮箱平台依然可正常进入收件箱。rDNS 需要在 ISP(服务提供商)或 运营商进行设置,腾讯云/阿里云 服务器可通过工单形式申请。
设置 rDNS,请把 IP地址
反向解析到 mail.example.com
(example.com为自己的域名)上即可!
bash -c "$(curl -sS https://www.cooluc.com/mailbox-install.sh)"
选择 2
进行卸载。
界面截图















邮箱检测





SSL/TLS安全评估:https://myssl.com/
垃圾邮件评测:https://www.mail-tester.com/
版权声明:本文为原创文章,版权归 Cooluc's Blog 所有,转载请注明出处!
本文链接:https://www.cooluc.com/archives/576.html
友情提示:如果博客出现404或链接失效,请留言或者联系博主修复!
98 条评论
DKIM 域名记录值,在有些域名服务商哪里是支持txt 解析的长度有限😀
本站仅支持最多240的记录值长度,超过的无法添加解析成功。
你把 mailbox-install.sh 脚本的第 307 行的 amavisd genrsa /mailbox/dkim/mail.pem 2048 改成 1024 去安装,这样 DKIM 的长度会变短。
博主,有 debian 安装的版本吗?
目前没有,因为个人某些原因,我只能使用centos7 系统。这个邮箱其实也是当时在部署的时候,突然想起来做个记录,就顺便把它写进shell 里了,所以它只有centos7 支持。
至于其它操作系统,等哪天有空我可能会去了解一下。
老哥又来麻烦你啦 遇到了新的问题 目前是安装了插件 用户前端改密的 但是显示无法保存新密码 网上的教程也都找了 无奈了 只有再找你了 你知道这个问题吗
检查 /mailbox/www 目录和子目录的权限,它默认的权限是 www,如果你更换过其它的 php,你需要根据你使用的php去改变目录的权限。
如果你是因为部署邮箱后,并且安装过某些危险的面板导致的权限锁定,你可能需要执行这两个命令解决它
按照您的方法修改了 但是我还是不通 我感觉挺麻烦的 我可以添加个你的联系方式 有偿帮忙解决一下嘛 实在麻烦您啦 hhh
我没明白你的意思。你是指在 Rainloop 的web mail 去更改邮箱账户的密码?
就是用户的端 修改密码
邮箱的账号密码目前只能通过管理员去操作。RainLoop 的控制面板(密码修改插件)它是针对国外一些闭源邮箱程序提供的,它不适合这个邮箱。
哦 原来是这样啊 难怪我说安装了插件 还是修改不了密码 谢谢您啦
安装邮箱后正常访问,但是再安装宝塔,安装数据库,就会提示系统错误:Connection failed: SQLSTATE[HY000] [1045] Access denied for user 'mailbox'@'localhost' (using password: YES)。请问该怎么处理,宝塔那里不显示安装过数据库,无法新建其他网站。
没接触过你说的那个宝搭不清楚。如果安装邮箱后,你要卸载邮箱安装附带的数据库,你必须将 mailbox 数据库导出。在安装新的数据库之后再将其导入。同时要重新创建 mailbox 数据库用户并设置与原来一致的密码。
这需要一定的Linux操作基础和MySQL 使用基础,因为我并不建议邮箱与任何程序共存(就像脚本建议的一样,请使用全新系统安装),所以这里不会有任何的操作流程展示与任何程序共存。
大佬,求问一下,按你说的这个方法重新新建导入数据库以后,后台添加的邮箱,在前端登录不了,一直认证失败,这个怎么办,怎么把前端webmail连接的数据库改成新建的呢?
数据库配置文件位于 /mailbox/www/admin/core/config.php
套接字路径缘故,mailbox 自带的 php 未必能正常连接到你自己安装的mysql,你可能需要把整个邮箱管理站点移动到你自己安装的环境上
感谢,这个方法可以,非常好用。
25端口 也打开了 全部都正常 去扫描端口也是开的 为啥还是收不到邮件
如果部署过程中没有异常,25 端口也暴露到公网,你可能需要检查你的域名解析对不对了。如果域名对、25暴露。Postfix、Dovecot 进程运行正常。它应该是可以收到和发送邮件的
新加域然后创建帐号之后 登录提示域不允许
访问并登录 http://mail.example.com:8000/?admin ,添加新的域名信息进去
你好 如何给某个域名加白 我看了后台的插件白名单和黑名单 但是那是控制谁登录的,我想要的是控制收信的 不让对方进lj箱这种
按照教程部署了,推特收不到邮件,是咋回事哈
Please waiting ...
ClamAV update process started at Sat Nov 5 12:07:54 2022
daily database available for download (remote version: 26710)
Time: 41.5s, ETA: 0.0s [========================>] 57.36MiB/57.36MiB
Testing database: '/var/lib/clamav/tmp.01a9145a97/clamav-fb923c0a27056bd896100c5569cb091a.tmp-daily.cvd' ...
ERROR: Database load killed by signal 9
ERROR: Database test FAILED.
ERROR: Unexpected error when attempting to update daily: Test failed
ERROR: Database update process failed: Test failed
ERROR: Update failed.
两次重装系统都这样唉
网络的问题,可以无视的,这是在下载杀毒库,机器网络好的情况下。他也会自动更新
手动更新病毒库可以了!
想问一下。WebMail客户端设置了HTTPS之后占用掉443端口了。请问怎么修改不使用443端口? 还有就是如何做一个转跳。访问mail.abc.com直接转跳到mail.abc.com:8080 这种。
/mailbox/nginx/conf/conf.d/rainloop.conf 文件,数字 443 修改成其它数字可以释放443端口
作者你好,添加多了域名得时候 除了主域名可以web邮箱后台登录,其它添加得邮箱登录 显示域不允许 怎么解决
你需要登入 webmail 后台添加新增的域名才允许通过web 登录
网页邮箱后台地址:http://mail.example.com:8000/?admin
请问这个后台如何开启https? http://mail.example.com:8010/ 我修改了/mailbox/www/admin/core/config.php 'url' => 'https://mail.wx.st:8010',//邮箱后台管理地址(后面不带 / 线) 无法进入
后台开启https 同理 ”配置 WebMail HTTPS 访问“,只需要在 nginx 新增https 站点 root 为 /mailbox/www/admin 目录即可。
额外需要的可能是一条nginx 规则
这应该不是什么难事,如果你会建站,应该能把http 站点变成https。它现成的站点就在 /mailbox/nginx/conf/conf.d/admin.conf
rpm包构建他有完整的操作流程,一言两语没办法说清楚,你只能用搜索引擎方式去学习。
没有安装ssl证书,现在没办法发邮件。
亲测不用装证书的 ,你发不了邮件应该是你25端口没开
😖腾讯云的提示:
为了提升腾讯云 IP 地址发邮件的质量,默认限制云服务器 TCP 25 端口连接外部地址,如果您没有在云上部署邮件服务,该限制不会影响您的服务;如果您需要使用邮件服务,我们诚挚地向您推荐腾讯企业邮箱。如果您一定要使用云主机向外连接 TCP 25 端口,请确保 TCP 25 端口仅用来连接第三方 SMTP 服务器,从第三方 SMTP 服务器外发邮件。如发现您使用云主机直接 SMTP 发送邮件,腾讯云有权永久封禁 TCP 25 端口,并不再提供相关服务。
先点赞收藏。请问博主,这个系统是否支持设置某个邮箱 catch-all。期待您的回复。
Catch-All 是 postfix 原生支持的功能,如果需要用到的话,可以手动去设置。
参考连接:https://www.headdesk.me/Postfix_and_Dovecot#Setting_up_a_catch_all_mailbox
https://tecadmin.net/setup-catch-all-email-account-in-postfix/
设置不难,甚至很简单
到最后,tmd还是qq邮箱最完美,省事简单好用
对了,想问一下,域名已经绑了一个邮箱(mail.xxx.com),还搭建吗?紧测试一下。可以 mail.yyy.xxx.com 这样吗?
理论上可以,但没有测试过
提示这个,有问题吗?
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
tar (child): mailbox.tar.xz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
mailbox.tar.gz 安装文件使用 jsDelivr cdn,前些天开始 jsDelivr 撤出国内CDN ,对国内服务器下载可能造成了困难,你可以重试一下,如果不行再给我反馈,我把文件迁移回国内。
最近咋没上QQ呢?几天不见人影了。。。。。。
??你是谁
你不是群里那个夏梦吗?没见你上线了。。。。。。