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:your-own-email@xx.xx)
- TXT (xx.xx -> v=spf1 mx ip4:206.190.your-own.ip/32 -all)
确保端口25,465,587,993,143 可用
Shell
x
1
1
lsof -i:25,465,587,993,143

正式安装 – 确保nginx配置文件支持多站点独立配置
Shell
xxxxxxxxxx
1
51
51
1
apt -y update
2
apt -y install acl zstd wget certbot
3
wget https://github.com/foxcpp/maddy/releases/download/v0.4.4/maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar.zst
4
unzstd maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar.zst
5
tar -xvf maddy-0.4.4+dcdf4a7-x86_64-linux-musl.tar
6
cd maddy-0.4.4+dcdf4a7-x86_64-linux-musl/
7
8
# 还是用默认的/etc/maddy比较好,不然要找默认命令来修改
9
mkdir /etc/maddy
10
cp maddy.conf /etc/maddy
11
cp maddy maddyctl /usr/bin
12
cp systemd/*.service /etc/systemd/system
13
14
# maddy不能直接运行在root用户下,务必创建一个单独的用户:
15
useradd -mrU -s /sbin/nologin -d /var/lib/maddy -c "maddy mail server" maddy
16
17
18
# (可选) 用certbot申请一个ssl证书
19
# maddy是没有web客户端的,如果自建web客户端,比如rainloop这类,则需要ssl
20
# 实际上可以直接用本地的客户端,比如thunderbird、foxmail这些。
21
### 如果没装nginx
22
certbot certonly --standalone --agree-tos --no-eff-email --email xxxxx@yyyyy.com -d maddy.xx.xx
23
### 如果你的机器上有nginx,安装certbot插件
24
apt -y install python-certbot-nginx
25
# 加一个单独站点的配置
26
cat > /etc/nginx/conf.d/maddy.conf <<EOF
27
server {
28
listen 80;
29
server_name maddy.xx.xx;
30
}
31
EOF
32
# 申请
33
certbot --nginx --agree-tos --no-eff-email --email xxxxx@yyyyy.com
34
35
36
# 配置acl,让maddy这个用户有权限读取证书
37
setfacl -R -m u:maddy:rx /etc/letsencrypt/{live,archive}
38
39
# 编辑配置文件
40
vi /etc/maddy/maddy.conf
41
# 修改下面列出的配置:
42
$(hostname) = maddy.xx.xx
43
$(primary_domain) = xx.xx
44
$(local_domains) = $(primary_domain)
45
46
tls file /etc/letsencrypt/live/$(hostname)/fullchain.pem /etc/letsencrypt/live/$(hostname)/privkey.pem
47
48
49
# 启动并设置自动开机
50
systemctl enable --now maddy.service
51
systemctl status maddy.service
cloudflare补充设置dkim
maddy在第一次启动的时候会生成一个dkim密钥,所以现在来补充配置一下dkim的dns解析
Shell
xxxxxxxxxx
1
2
1
# 查看下面的文件(域名换成你自己的)获取dkim密钥:
2
cat /var/lib/maddy/dkim_keys/xx.xx_default.dns


到此 – 在cloudflare总共需要设置5项

(可选)在搬瓦工的管理界面设置rdns反向DNS查询-提高非spam checker分数

验证域名邮箱的质量 https://www.mail-tester.com/

小技巧 – 可以用你创建的 aa+xyz123-or-anything@xx.xx 都可以在aa@xx.xx 收到邮件

感谢大佬,学到了