最新消息:

docker-mailserver快速搭建邮件服务

Linux google 121浏览 0评论


一 搭建环境需求
1 服务器
使用了 centos7 版本系统的云服务器

需要开放端口号: 25, 587, 465, 110, 995, 143, 993

端口说明:https://docker-mailserver.github.io/docker-mailserver/edge/config/security/understanding-the-ports/

2 域名
需要购买一个域名
然后进行DNS解析 (可在购买域名的服务商上进行解析,个人习惯使用CF)

3 docker-mailserver
git仓库: docker-mailserver
https://github.com/docker-mailserver/docker-mailserver
官方文档: docker-mailserver document
二 域名解析
搭建邮件服务器,设置DNS解析是比较重要的部分。下述只介绍下记录值的填写内容。
添加一个A记录,名称为mail, 指向自己服务器的公网ip
添加MX记录, 指向邮件服务器域名 mail.[yourdomain], 优先级设置为10
添加TXT SPF 记录, 可以简单使用: v=spf1 mx -all
添加TXT _dmarx 记录, Name 设置为 _dmarc, Content设置为 v=DMARC1; p=reject; adkim=s; aspf=s

v=spf1表示这是 SPF记录的版本号,目前只有一个版本
a 表示授权由域名对应的A记录中列出的IP地址发送邮件
mx 表示授权由域名对应的MX记录中列出的IP地址发送邮件
ip4:108.182.201.242 表示授权指定的IPv4地址发送邮件
SoftFail和HardFail是两种策略,用于指定未经授权的发件人邮件如何处理

~all 宽容策略。如果发件人的IP地址不在SPF记录中指定的允许列表中,那么收件方的邮件服务器不会拒绝该邮件,而是将该邮件标记为“软失败”,并将其放入接收方的垃圾邮件文件夹或者标记为垃圾邮件。
-all 严格策略。如果发件人的IP地址不在SPF记录中指定的允许列表中,那么收件方的邮件服务器会拒绝该邮件,并将其退回给发件人或者直接删除

参考链接:https://juejin.cn/post/7260767425729642556

三. 安装Docker

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker

git clone https://github.com/docker-mailserver/docker-mailserver
修改compose.yaml mailserver.env为对应的值
docker compose up -d

常用命令

查看用户列表

docker exec -it mailserver setup email list

添加用户

docker exec -it mailserver setup email add <EMAIL ADDRESS> [<PASSWORD>]

docker exec -it mailserver setup email add xxx@domain.com "password123"

修改邮箱账户的密码

docker exec -it mailserver setup email update <EMAIL ADDRESS> [<PASSWORD>]

比如

docker exec -it mailserver setup email update admin@domain.com "password123"

setup命令还有一些其他功能
bash复制代码# 查看setup命令帮助
docker exec -it mailserver setup

docker-compose.yml环境变量

ENABLE_CLAMAV 病毒扫描。默认关闭。会占用大量的服务器资源,默认关闭。0:关闭 1:开启
ENABLE_FAIL2BAN 封锁尝试暴力破解的IP地址。默认关闭。0:关闭 1:开启
如果启用 Fail2Ban,请不要忘记将以下行添加到 docker-compose.yml:
yaml复制代码cap_add:

  • NET_ADMIN

SPOOF_PROTECTION 用户只能发送自己的邮件,避免发件人地址伪造,默认关闭(Each user only send with his own or his alias addresses) 0:关闭 1:开启

添加邮件转发
可选,非必须配置。

官方文档称为 catch all 规则: catch all.

如果希望管理员用户可以接受到所有用户的邮件,可以配置一个catch all规则

# 添加sanjay@aigpt.asia 可以接受其他用户邮件
./setup.sh alias add @aigpt.asia sanjay@aigpt.asia
# 查看列表, 实际记录在 docker-data/dms/config/postfix-virtual.cf
./setup.sh alias list 

#如果需要test账号自己也能接收到,需要添加自己, 否则自己收不到
./setup.sh alias add test@aigpt.asia  test@aigpt.asia 
./setup.sh alias add test@aigpt.asia  sanjay@aigpt.asia 

转载请注明:LinuxHub | DevOps,SRE,运维架构师,运维开发,Python,Golang程序员,开源爱好者 » docker-mailserver快速搭建邮件服务

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址