飞牛NAS搭建邮件服务器全攻略
准备工作:域名与端口
在开始搭建之前,有几项硬性条件需要确认。首先,你需要一个属于自己的域名,并且能够修改该域名的 DNS 解析记录。如果你只是想在内网测试,可以使用 mail.local 之类的假域名,但若要接收外部邮件,则必须要有真实域名。
其次,邮件服务依赖以下端口,请确保你的路由器和光猫已做好端口转发,并且运营商没有封禁这些端口:25(SMTP)、465(SMTPS)、587(提交)、993(IMAPS)、995(POP3S)。国内家用宽带通常封禁 25 端口,因此建议使用 465 或 587 作为发送端口。
DNS 记录配置
在域名控制台添加以下解析记录:
- A 记录:mail 指向你的 NAS 公网 IP
- MX 记录:@ 指向 mail.yourdomain.com,优先级 10
- SPF 记录(TXT):v=spf1 mx ~all
- DKIM 记录(TXT):稍后生成后填入
安装与基础配置
飞牛 NAS 的 Docker 功能非常成熟,我们直接使用 mailserver 镜像来搭建。打开 Docker 应用,搜索 mailserver,选择 docker.io/mailserver/docker-mailserver 镜像并下载。
创建目录结构
在文件管理器中创建以下目录:
/docker/mailserver/data
/docker/mailserver/config
/docker/mailserver/state
编写 docker-compose.yml
在 /docker/mailserver/ 下新建 docker-compose.yml,内容如下:
services:
mailserver:
image: docker.io/mailserver/docker-mailserver:latest
container_name: mailserver
hostname: mail
domainname: yourdomain.com
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
- "995:995"
volumes:
- ./data:/var/mail
- ./config:/tmp/docker-mailserver
- ./state:/var/mail-state
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- ENABLE_POSTGREY=1
- ONE_DIR=1
- DMS_DEBUG=0
restart: unless-stopped
将 yourdomain.com 替换为你的真实域名。保存后,在飞牛 NAS 的 SSH 终端中执行:
cd /docker/mailserver
docker compose up -d
等待镜像拉取并启动,首次启动会自动生成基础配置。
配置域名与邮箱账户
生成 DKIM 密钥
进入容器生成 DKIM 密钥:
docker exec -it mailserver setup config dkim
执行完毕后,在 /docker/mailserver/config/opendkim/keys/yourdomain.com/ 下会生成 mail.txt 文件。打开该文件,将其中 p= 后面的内容复制到域名 DNS 的 TXT 记录中,记录名为 mail._domainkey。
添加邮箱账户
创建第一个邮箱账户:
docker exec -it mailserver setup email add [email protected]
系统会提示设置密码。重复执行该命令可添加更多账户。若要删除账户,使用:
docker exec -it mailserver setup email del [email protected]
配置邮件别名
在 /docker/mailserver/config/postfix-virtual.cf 文件中添加别名映射:
[email protected] [email protected]
[email protected] [email protected]
保存后重启容器:
docker exec -it mailserver supervisorctl restart postfix
开启 SSL 证书
飞牛 NAS 自带证书管理功能。在「设置」-「证书」中申请 Let's Encrypt 证书,或者手动上传已有证书。将证书文件复制到容器配置目录:
cp /path/to/your/cert.pem /docker/mailserver/config/ssl/cert.pem
cp /path/to/your/key.pem /docker/mailserver/config/ssl/key.pem
重启容器使证书生效:
docker compose restart
客户端连接设置
邮件客户端(Outlook/Thunderbird)
- 收件服务器(IMAP):
mail.yourdomain.com,端口993,SSL/TLS - 发件服务器(SMTP):
mail.yourdomain.com,端口465,SSL/TLS - 用户名:完整邮箱地址
- 认证方式:普通密码
飞牛 NAS 自带邮件客户端
在飞牛 NAS 的「应用中心」安装「飞牛邮件」应用,进入设置页面,填写:
- 邮件服务器:localhost
- IMAP 端口:993
- SMTP 端口:465
- 账号密码:刚才创建的用户
常见问题排查
无法发送邮件到 Gmail/Outlook
首先检查 SPF 记录是否生效:
dig TXT yourdomain.com
确认返回中包含 v=spf1 mx ~all。其次,检查服务器 IP 是否被列入黑名单,可通过 whatismyipaddress.com 查询。
收不到外部邮件
登录 NAS 后台,查看日志:
docker logs mailserver | grep -i "error"
常见的原因为 25 端口被运营商封锁,或者 MX 记录解析不正确。可以尝试使用 telnet mail.yourdomain.com 25 测试外部连通性。
频繁被暴力破解
启用 Fail2ban 后,系统会自动封禁多次尝试登录的 IP。查看封禁列表:
docker exec -it mailserver setup fail2ban
总结
通过上述步骤,你已经在飞牛 NAS 上成功搭建了一个功能完整的邮件服务器。整个过程利用 Docker 容器化部署,既保持了系统的整洁,又便于后续升级维护。虽然初次配置涉及 DNS、证书等环节,但只要按照流程操作,半小时内即可完成。这套方案支持多域名、多账户,并且内置了垃圾邮件过滤和病毒扫描,足以满足个人或小型团队的使用需求。最后提醒一句:请务必做好数据备份,邮件数据一旦丢失将难以找回。
暂无评论,来说两句吧