MailBox 一键极速部署域名邮箱系统 - 完美支持 IMAP SMTP POP3(支持TLSv1.3)

简介

MailBox 是基于Linux的开源程序集成的邮箱系统,支持最新 TLSv1.3 协议,高度集成了众多优秀稳定的组件,使用高标准安全协议,是一个快速部署、简单高效、多语言、高可用、安全稳定 的邮箱解决方案,节省维护成本,兼容各大主流的邮件客户端。

开源组件

开源组件列表

Postfix3:(邮件服务器SMTP)官网
Dovecot2:(IMAP/POP3/邮件存储)官网
ClamAV:(反垃圾和反病毒)官网
SpamAssassin:(邮件过滤)官网
Fail2ban:(安全监控策略) 官网
Nginx:(web 服务)官网
PHP:(网页解析)官网
MariaDB:(数据库)官网
EwoMail-Admin:1.15(用户管理系统)开源地址官网
Rainloop:1.17.0 (网页邮箱客户端)官网
MailBox 安装文件:前往

安装要求

MailBox邮件系统通过脚本方式在线部署,请确保你的服务器允许访问网络。

个人邮箱部署国外 VPS 推荐,支持rDNS:

CloudCone:2核 1G(适合体验型,部署完成后建议关闭 ClamAV 病毒扫描)
CloudCone:2核 2G(完全满足配置要求)

系统:全新的 CentOS 7Red Hat 7CentOS 9Red Hat 9Rocky Linux 9

架构:aarch64x86_64(RHEL 9 目前暂时仅支持 x86_64 架构)
ARM 服务器部署已经过华为鲲鹏服务器测试通过

端口:2580008010143993995587110465

对于腾讯云、阿里云服务器,需在服务器后台单独申请开放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
mailA127.0.0.1
@MXmail.example.com5
@TXTv=spf1 mx -all
imapCNAMEmail.example.com
smtpCNAMEmail.example.com
popCNAMEmail.example.com
_dmarcTXTv=DMARC1; p=none

通过终端使用 root 用户执行安装指令,安装程序提示键入 域名地址 即可快速完成安装!

bash -c "$(curl -sS https://www.cooluc.com/mailbox-install.sh)"

安装
安装
完成安装
完成安装

DKIM 是电子邮件验证标准 —— 域名密钥识别邮件标准。

使用命令获取 dkim key

amavisd -c /etc/amavisd/amavisd.conf showkeys

获取 dkim key
获取 dkim key

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

dkim 整理
dkim 整理

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

DNSPod域名解析示例
DNSPod域名解析示例

到此,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

请务必修改以上两个后台密码!

设置 MySQL root密码

MailBox 安装程序不设置MySQL root密码,默认为空密码,需自行进行初始 root 密码设置

使用终端执行命令行设置 MySQL root密码

mysqladmin -u root -p password 123456

123456 换成你要设置的密码,过程中会提示 Enter password: ,由于root密码为空,直接回车即可完成设置。

MailBox 兼容各大主流邮件客户端,设置方法大同小异,这里仅演示win10、iPhone 邮件客户端添加 MailBox 邮箱方法

Windows10 邮件


打开win10 邮件,添加账户 - 高级设置

Internet 电子邮件

填写邮件用户名、密码

传入电子邮件服务器:mail.example.com
账户类型:IMAP4
传出(SMTP)电子邮件服务器:smtp.example.com

完成登录

iPhone 邮件


依次打开 设置 - 邮件 - 账户 - 添加账户 - 选择其它

添加邮件账户

填写账户信息 - 下一步

填写主机名、用户名、密码

收件服务器
主机名:mail.example.com

发件服务器
主机名:smtp.example.com

信息填写完毕后,点击下一步进行验证,验证通过即可使用。



维护相关

客户端设置

SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL可以在传输层对网络连接进行加密,并且能够有效的保护用户机密信息,提升邮箱在使用过程中及邮件在传输过程中的安全性。

如果你的邮箱客户端支持 SSL 加密,可以参考下表,使用正确的信息设置你的邮箱客户端。

接收邮件服务器服务器地址端口SSL 加密
IMAPimap.example.com993SSL/TLS
IMAPimap.example.com143STARTTLS
POP3pop.example.com110STARTTLS
发送邮件服务器服务器地址端口SSL 加密
SMTPsmtp.example.com465SSL/TLS
SMTPsmtp.example.com587STARTTLS
SMTPmail.example.com25

更新 ClamAV 病毒库

默认情况下,系统会定期进行病毒数据库检查更新,但由于国内网络原因,失败率非常高。

使用终端执行病毒数据库更新命令

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 -重载服务

新增域名 DKIM 设置

DKIM 是电子邮件验证标准 —— 域名密钥识别邮件标准。在同一个服务器上新增邮箱域名,需进行 DKIM 设置,如无新增域名,则忽略。

编辑配置文件:/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 key

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

更换IMAP & SMTP SSL证书


MailBox 安装程序会根据你的域名生成泛域名证书,由于属于自签证书,无法得到网络的认可,但是不影响正常使用邮件服务,如果在相关机构申请了授信证书,可以通过以下方法更换。但是,如果不清楚自己在做什么,请勿修改此项任何内容,否则可能导致邮箱系统无法 发送接收 邮件。

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

配置 WebMail HTTPS 访问

配置 WebMail HTTPS 访问于对网页邮件操作进行加密传输,有利于数据保密。

域名证书申请

  • 配置 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 均换成自己的域名

减少 clamd 进程内存占用


ClamAV 杀毒监控程序可能会消耗系统很大的内存资源,如果你使用微型服务器配置可以通过以下方法禁用ClamAV,释放更多可用 RAM 资源。

终端执行以下命令

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

如果服务器内存足够,建议保留 ClamAV 服务。

设置rDNS


反向 DNS 查找或者反向 DNS 解析(rDNS)用于判定一个域名与指定IP是否互相关联。有些公司例如 AOL 会拒绝没有进行反向解析的发件服务器发出的所有消息,在一个 IP 地址上你只能关联一个域名。

rDNS 为可选设置项,未设置 rDNS 国内全邮箱平台依然可正常进入收件箱。rDNS 需要在 ISP(服务提供商)或 运营商进行设置,腾讯云/阿里云 服务器可通过工单形式申请。

设置 rDNS,请把 IP地址 反向解析到 mail.example.com (example.com为自己的域名)上即可!

卸载 MailBox

MailBox 支持无残留卸载,卸载后可在同一个系统上再次安装或当安装前系统环境一样使用,执行以下命令行即可卸载!

bash -c "$(curl -sS https://www.cooluc.com/mailbox-install.sh)"

选择 2 进行卸载。

注意:卸载 MailBox 后,邮件数据将永久销毁无法还原,如有重要邮件数据,请注意备份后操作!

界面截图

管理员后台管理 EwoMail-Admin

登录界面
登录界面
主界面
主界面
用户添加
用户添加
邮箱列表
邮箱列表
管理员列表
管理员列表
系统设置
系统设置
管理员添加
管理员添加
角色添加
角色添加
操作日志
操作日志

网页邮件 Rainloop

登录
登录
邮件编辑
邮件编辑
设置
设置
主题设置
主题设置
收件
收件
添加联系人
添加联系人

邮箱检测

安全 & 标准

www.mail-tester.com 评分
www.mail-tester.com 评分
SMTP TLS
SMTP TLS
IMAP TLS
IMAP TLS
TLS协议与套件
TLS协议与套件
TLS协议详情
TLS协议详情

SSL/TLS安全评估:https://myssl.com/
垃圾邮件评测:https://www.mail-tester.com/

最后修改:2024 年 08 月 30 日
如果觉得我的文章对你有用,请随意赞赏