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 条评论
MailBox 现已支持 RHEL 9 系列,即:CentOS 9 Stream、Redhat Linux 9、Rocky Linux 9、Oracle Linux 9、AlmaLinux 9
请问一下我换服务器 了 备份了数据库 还有邮件文件夹 然后新装了 现在后台什么都一样 然后也替换了 但是就是登录的时候认证失败 是什么原因啊
是 “邮箱管理后台” 登录不上还是 “web邮件” 登录不上?如果是 “web邮件” 登录不上,先试试邮箱客户端能不能正常登录(电脑、手机等客户端),如果是“邮箱管理后台” 登录不上,可能数据库恢复并没有成功。
web邮件登不上 后台都可以添加域名和邮箱 客户端好像也无法登录 不知道是不是系统是centos8精简版的原因
这就不奇怪了。系统:全新的 CentOS 7、Red Hat 7。这个邮箱的软件包是基于 centos7 系统编译的,centos8 肯定是不能用的。
目前最尴尬的是 centos7 已经停止生命周期了,云服务器供应商可能甚至已经不提供。这里这个邮箱基本上是废了,你应该需要找另一个方法去安装邮箱。
至于对新系统的支持,这需要买服务器做测试,这对于穷苦人家来讲基本上遥遥无期了
解决了 找到邮局原来的nginx配置添加到宝塔里面的nginx配置文件就好了
您好大佬我重新装了centos7 然后装的邮局 再装的宝塔 本来是可以共存的 ,后来服务器重启了 ngin重启了之后宝塔装的nginx可以用 但是邮局的8010 8000无法访问了 端口也是放行的 怎么解决呀
centos7已经停止更新了,安装文件要更新一下了吧,mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm地址也不存在了.好像阿里的源还是存在的
已经更改,现在已经可以继续安装
😄刚把centos7玩崩了,也是现在不维护了,装个软件都 麻烦,国内源都 纷纷关了,打算换debian,可以装吗
这里的这个邮箱最初就是只为 centos7。debian 系统你可以谷歌搜搜,毕竟邮箱这种东西基本都是一搜一大把。我这个是基本不会更新或做其它系统支持了。因为这个东西是给我自己使用的,用了4年,如果idc不倒闭,我都没有更换邮箱的需求
好东西!!!
现在管理员后台打不开了
尝试重启 mailbox 自带的 nginx 、php,如果问题仍然得不到解决,只能说明你的服务器除了mailbox 还额外安装了其它程序导致端口等冲突了。这里的 mailbox 部署建议是在全新系统下安装,如果你希望 all in one 的话,不推荐使用这个邮箱。
安装脚本下载超时了啊
没办法,去网上搜别的一个部署教程吧,贫穷的人服务器用的美国,超时问题无法解决
在控制台添加多个域名后在web邮箱登录依然会显示域不允许,这好像是个 BUG?
这是 rainloop 的安全限制,去 /mailbox/www/rainloop/data/_data_/_default_/domains/ 目录添加新域名配置文件。
或者登录:http://mail.example.com:8000/?admin#/domains 后台添加新域名信息
可以连接telegram bot吗
这是纯粹的一个 IMAP SMTP POP3 邮箱。
aa
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