阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker部署mailcow,自建邮局服务(一)

643次阅读
没有评论

共计 2855 个字符,预计需要花费 8 分钟才能阅读完成。




本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

在早期的文章中 xiaoz 分享过《使用 Docker 搭建 poste,自建邮件服务器》,poste 这个邮局比较轻量,部署相对简单,适合个人轻度使用。但是从客户的使用反馈来看(xiaoz 之前有给客户部署过),大量发件的时候 poste 不太稳定,很容易出问题。且 poste 将所有相关依赖服务全部放到一个容器中,并没有使用 docker-composer 编排多个容器,从而导致稳定性大打折扣。

今天再分享另一个开源的自建邮局服务 mailcow,mailcow 功能上比 poste 更加丰富,官方提供 docker-composer 部署方式,下面和 xiaoz 一起来安装下 mailcow 邮件服务吧。

注意:此教程需要掌握一定 Linux 基础和 Docker 基础的人士阅读

先决条件

  • 一台 VPS,有独立 IP,最低配置 1C2G,建议 2C4G 以上,支持发件服务(未屏蔽邮件端口,请咨询你的服务商),支持 PTR 反向解析(咨询你的服务商)
  • 操作系统:CentOS、Debian、Ubuntu 均可
  • 安装了 Docker 和 docker-composer
  • 一个域名,注册时间越长越好,建议使用主流后缀,如:.com/.net/.org

注意:请务必和你的服务商确认是否支持 PTR 反向解析,如果不支持的话邮件是很容易进垃圾箱的,就目前 xiaoz 所了解 UltraVPS(EU) 是支持 PTR 解析的,并且自己在后台就可以操作。

如果您还没有安装 Docker 可以参考:Linux 安装 Docker 与 Docker 常用命令

如果您还没有安装 docker-composer,可以使用下面的命令安装:

# 下载 docker-composer
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
chmod +x /usr/local/bin/docker-compose
#建立软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

部分 CentOS 7 系统可能内置了 postfix 服务,会和 mailcow 端口冲突,可以先尝试执行下面的命令卸载 postfix

#CentOS 卸载 postfix
yum -y remove postfix
#Debian 或者 Ubuntu 卸载 postfix
apt-get remove postfix

设置 Linux 主机名

假设您的顶级域名为 domain.com,那么您的主机名需要设置为mail.domain.commx.domain.com,前缀自己取,反正是需要二级域名。

设置主机名的命令为:

hostnamectl set-hostname mail.domain.com

然后修改 /etc/hosts,添加一行 hosts 解析,就是将mail.domain.com 指向到您当前服务器的公网 IP,命令如下:

echo '173.0.xx.xxx    mail.domain.com' >> /etc/hosts

部署 mailcow

先克隆 mailcow 代码和脚本:

#CentOS 安装 Git
yum -y install git
#Debian 安装 Git
apt-get install git

#克隆 mailcow 代码
git clone https://github.com/mailcow/mailcow-dockerized

进入代码目录 cd mailcow-dockerized 执行初始化脚本:./generate_config.sh根据提示设置域名和时区等信息。注意:

  1. 域名要和上面设置的主机名一致,比如mail.domain.com
  2. 如果后续需要修改,可以编辑 mailcow.conf 这个配置文件

mailcow 默认使用了 80/443 作为 WEB 端口,如果您的服务器上已经存在 WEB 服务,可能会导致端口冲突,我们可以修改 mailcow.conf 这个配置文件,将

HTTP_PORT=80
HTTPS_PORT=443

修改为其它端口,比如修改为:

HTTP_PORT=880
HTTPS_PORT=8443

然后执行下面的命令拉取容器镜像和启动:

# 拉取镜像
docker-compose pull
#启动容器
docker-compose up -d

初始化 mailcow 和添加域名

安装成功后,访问您的 IP + 端口进入 WEB 管理界面,默认用户名:admin,密码为:moohoo

进入后台后点右上方“配置 – 邮箱设置 – 添加域名”

注意:添加域名的时候这里需要填写您的顶级域名domian.com,比如您主机名设置的是mail.domain.com,那么这里添加域名的时候填写domain.com

添加邮箱解析

域名添加完毕后,右侧有个 DNS 按钮,点击这个按钮会对您的域名 DNS 进行检测和指引。

不过那个检测有点不准,而且并非所有记录都要添加,下面是必须添加的记录。

主机名 记录类型 记录值 备注
mail.domain.com A 您的 IP 填写你 VPS 的公网 IP
您的 IP PTR mail.domain.com 可能需要联系服务商添加
domain.com MX mail.domain.com
autodiscover.domain.com CNAME mail.domain.com
autoconfig.domain.com CNAME mail.domain.com
domain.com TXT v=spf1 a mx ip4:173.0.xx.xxx ~all IP 改成你自己的
dkim._domainkey.domain.com TXT 从 mailcow 后台获取 DKIM 记录从 mailcow 后台获取

邮件测试

DNS 解析添加完毕后,等待几分钟生效,然后在 mailcow 后台添加邮箱账号,并登录 webmail 进行发件测试。

打开 https://www.mail-tester.com/ 这个网站,然后用你的 mailcow 邮箱发送邮件,发送完毕后查看得分。

满分为 10 分,如果评分很差,mail-tester 会给出提示,建议根据提示进行修正即可。

总结

上述步骤我们仅仅是完成了安装和初始化,其实后续还有很多配置和维护工作要做。比如禁用 IPV6、反向代理、配置 SSL 证书、数据备份与恢复等,有兴趣的可以参考 mailcow 官方文档完成,后续 xiaoz 再分享 mailcow 配置方面的内容。

自建邮局比较复杂且步骤繁多,很多细节问题若处理不好很容易进垃圾箱。非必要情况建议使用第三方企业邮箱即可,除非有特殊需求。自建邮局虽然不受发件量限制,但不建议短时间内发送大量垃圾邮件,否则你的 IP 或域名很容易被拉黑,最后得不偿失。

如果您也需要自建邮局服务器,可联系我的 QQ:446199062 或者 微信:xiaozme

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7966499
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...