Maddy是一款用Go语言开发的邮件服务器,它实现了运行电子邮件服务器所需的所有功能。
Maddy用一个具有统一配置和最低维护成本的守护进程取代了Postfix、Dovecot、OpenDKIM、OpenSPF、OpenDMARC 等程序。
上面的介绍摘自项目的主页。通俗点讲就是部署特别方便,就一个二进制文件和一个配置文件,下载下来改改配置就能用。
Maddy是非常适合个人使用的电子邮件服务器,下面记录一下在Debian10部署的过程。
开始之前先配置几个dns解析记录,本文以cloudflare的dns解析界面示例。
添加一个a记录,假设名称是mx1:
添加一个mx记录,名称@,记录值是你之前添加的a记录:
添加一个txt记录,名称_dmarc,记录值:v=DMARC1; p=none; rua=mailto:[email protected]
注:邮箱换成你自己的,用于接收关于dmarc的检测报告。
添加一个txt记录,名称@,记录值:v=spf1 mx ip4:109.238.3.123/32 -all
注:IP地址换成你自己的服务器IP。
做完上面的配置后,现在检查一下机器的25/465/587/993/143端口有没有被占用以及这些端口有没有被服务器商家屏蔽。
有些Debian10的系统默认带有exim4,会占用25端口,可以先卸载掉。
apt remove exim4-base apt autoremove
安装需要用到的包/下载解压maddy:
apt -y update apt -y install acl zstd wget certbot wget https://github.com/foxcpp/maddy/releases/download/v0.4.4/maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar.zst unzstd maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar.zst tar -xvf maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar cd maddy-0.4.4+dcdf4a7-x86_64-linux-musl/
创建需要用到的目录,复制相应的文件到对应的目录:
mkdir /etc/maddy cp maddy.conf /etc/maddy cp maddy maddyctl /usr/bin cp systemd/*.service /etc/systemd/system
maddy不能直接运行在root用户下,务必创建一个单独的用户:
useradd -mrU -s /sbin/nologin -d /var/lib/maddy -c "maddy mail server" maddy
现在使用certbot申请一个ssl证书。
如果你的机器上没有nginx(没有任何程序占用80端口)可以直接用certbot内置的web服务器来申请ssl证书:
certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d mx1.233.fi
如果你的机器上有nginx,那么可以再装一个certbot的nginx插件:
apt -y install python-certbot-nginx
然后新建一个nginx站点配置文件:
nano /etc/nginx/conf.d/maddy.conf
写入一个最小的nginx站点配置:
server { listen 80; server_name mx1.233.fi; }
然后使用certbot的nginx插件来申请ssl证书:
certbot --nginx --agree-tos --no-eff-email --email [email protected]
maddy是没有web客户端的,考虑到有人可能会自己搭建web客户端,比如rainloop这类,所以这里提供了nginx申请证书的方法。
实际上可以直接用本地的客户端,比如thunderbird、foxmail这些。
现在需要配置acl,让maddy这个用户有权限读取证书:
setfacl -R -m u:maddy:rx /etc/letsencrypt/{live,archive}
接下来编辑maddy的配置文件:
nano /etc/maddy/maddy.conf
修改下面列出的配置:
$(hostname) = mx1.233.fi $(primary_domain) = 233.fi $(local_domains) = $(primary_domain) tls file /etc/letsencrypt/live/mx1.233.fi/fullchain.pem /etc/letsencrypt/live/mx1.233.fi/privkey.pem
启动maddy以及设置开机自启:
systemctl enable --now maddy.service
查看运行状态,确保正常:
systemctl status maddy.service
maddy在第一次启动的时候会生成一个dkim密钥,所以现在来补充配置一下dkim的dns解析。
查看下面的文件(域名换成你自己的)获取dkim密钥:
cat /var/lib/maddy/dkim_keys/233.fi_default.dns
内容类似于:
v=DKIM1; k=rsa; p=MIIBIjANCgkqhkiG9w2BAQEFTAOCAJ6AMSIBC......
添加一个txt解析记录:
做完上面这些后,maddy就已经部署好了。现在可以尝试添加用户了。
创建一个用户账号,这里的用户名必须是电子邮件的地址:
maddyctl creds create [email protected]
还需要创建一个imap本地存储账户与之关联,电子邮件的地址务必与用户账号的地址保持一致:
maddyctl imap-acct create [email protected]
在本地使用thunderbird客户端登录,你可以选择多种不同的登录验证方式。
比如说用993/465:
或者143/587:
最后测试一下邮件服务器的得分:
最新评论
5211314
能不能教我 一点不会