MailBox 一键极速部署域名邮箱系统 - 完美支持 IMAP SMTP POP3(支持TLSv1.3)
简介
开源组件
安装要求
MailBox邮件系统通过脚本方式在线部署,请确保你的服务器允许访问网络。
个人邮箱部署国外 VPS 推荐,支持rDNS:
CloudCone:2核 1G(适合体验型,部署完成后建议关闭 ClamAV 病毒扫描)
CloudCone:2核 2G(完全满足配置要求)
系统:全新的 CentOS 7
、Red Hat 7
、CentOS 9
、Red Hat 9
、Rocky Linux 9
架构:aarch64
、x86_64
(RHEL 9 目前暂时仅支持 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或链接失效,请留言或者联系博主修复!
123 条评论
好用!
请问这个后台如何开启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呢?几天不见人影了。。。。。。
??你是谁
你不是群里那个夏梦吗?没见你上线了。。。。。。
不想使用一键安装,如何手动一步步安装
纯手工安装,过程非常繁杂,我没有很好的文章建议。你可以看官方的docs 来配置,也可以搜搜有没有其他类似的手动安装的文章教程
当然你也可以看我的脚本具体是做了什么,脚本内容是明文的,https://www.cooluc.com/mailbox-install.sh
老哥,开源的吗?
docker 镜像有吗?
使用的东西全部是开源的,详见“开源组件列表”,nginx & php 和 核心的 postfix & dovecot 是使用最近的正式版源码编译的,也有提供源码包:https://repo.cooluc.com/mailbox/7/SRPMS/
目前没有做docker 版本
了解,,感谢。
配置好了,发不出去邮件 也收不到!
检查“安装要求” 所需的端口是否放行,如果不知道建议找端口扫描网站逐一检查所需端口
提示这个怎么解决,
安装终止:MySQL 3306 端口被占用,请使用全新系统安装
字面意思,邮箱系统是追求稳定使用的东西,不建议跟其他东西共存使用。这个提示是你服务器已经安装过其他环境、面板或站点之类。
如果你是全新系统安装,也有可能是你安装邮箱时失败或中断过,如果是这种情况卸载一次重新安装可以解决
666,帮我解决大问题了,点个赞
想问问如何修改添加邮箱时候 "错误提示:邮箱地址@前面的字符不能少于3个字数" 少于3字数的限制
编辑文件:/mailbox/www/admin/api/User.class.php
第82行内容:if(strlen($name)<2){ 修改数字2为1 if(strlen($name)<1){
想问一下添加多个域名解析要怎么设置?还有添加了域名之后的ssl证书要如何设置
ssl 证书仅用于邮件客户端的通讯,添加多个域名无需添加额外的ssl证书,客户端如果通过ssl通讯,imap & smtp 地址设置为绑定ssl证书的域名地址就可以。
如:服务器上添加证书的域名为 test.com ,那么所有的添加进来的新增域名都可以在客户端使用 imap.test.com 和 smtp.test.com ,登录的账户是 新增域名的就可以了。
网页上的邮箱域名添加了之后 DKIM 要如何设置?
对于多域名如何设置多个DKIM ,目前还没有真实了解过,不过即使没有设置DKIM,邮箱依然是可以正常使用的。
在官方帮助文档里面找到这个解决方法了
你好,可以把官方帮助文档的连接发我看一下吗?我也想设置第一个邮箱域名
文章已更新,具体查看 “维护相关 - 新增域名 DKIM 设置”
红皮鞋,试试
阿里不给解封25端口!!!
腾讯好申请
看看我是win几