Contents
hide
目的
- 实现个人域名邮箱的自建
- 需要开放端口 25,465,587,993,143
- 参考 https://lala.im/7978.html
实现
先在cloudflare设置
- A记录(maddy.xx.xx -> IP)
- MX(xx.xx -> maddy.xx.xx)
- TXT(_dmarc -> v=DMARC1; p=none; rua=mailto:[email protected])
- TXT (xx.xx -> v=spf1 mx ip4:206.190.your-own.ip/32 -all)
确保端口25,465,587,993,143 可用
lsof -i:25,465,587,993,143
正式安装 – 确保nginx配置文件支持多站点独立配置
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/ # 还是用默认的/etc/maddy比较好,不然要找默认命令来修改 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证书 # maddy是没有web客户端的,如果自建web客户端,比如rainloop这类,则需要ssl # 实际上可以直接用本地的客户端,比如thunderbird、foxmail这些。 ### 如果没装nginx certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d maddy.xx.xx ### 如果你的机器上有nginx,安装certbot插件 apt -y install python-certbot-nginx # 加一个单独站点的配置 cat > /etc/nginx/conf.d/maddy.conf <<EOF server { listen 80; server_name maddy.xx.xx; } EOF # 申请 certbot --nginx --agree-tos --no-eff-email --email [email protected] # 配置acl,让maddy这个用户有权限读取证书 setfacl -R -m u:maddy:rx /etc/letsencrypt/{live,archive} # 编辑配置文件 vi /etc/maddy/maddy.conf # 修改下面列出的配置: $(hostname) = maddy.xx.xx $(primary_domain) = xx.xx $(local_domains) = $(primary_domain) tls file /etc/letsencrypt/live/$(hostname)/fullchain.pem /etc/letsencrypt/live/$(hostname)/privkey.pem # 启动并设置自动开机 systemctl enable --now maddy.service systemctl status maddy.service
cloudflare补充设置dkim
maddy在第一次启动的时候会生成一个dkim密钥,所以现在来补充配置一下dkim的dns解析
# 查看下面的文件(域名换成你自己的)获取dkim密钥: cat /var/lib/maddy/dkim_keys/xx.xx_default.dns
感谢大佬,学到了