Intro#
为给 mix-space 添加回复邮件订阅及通知,遂打算自建邮局。
网上搜寻了一圈,iRedMail 功能强大,使用简单,部署起来也不算复杂,搞!
如果你也想部署,你需要拥有:
- 一台 VPS,最好支持 Reverse DNS。
- 一个域名(当然啦)
本文基于 ubuntu 22.04 lts,使用域名为 xxu.do,你可以参考。
正式安装#
准备系统及安装#
- 更新你的软件包并安装所需软件包:
sudo apt update
sudo apt upgrade
sudo apt install wget curl sudo tar socat bind9-utils -y
- 计划将 mail.xxu.do 作为邮局域名,即设置 VPS 主机名:
vim /etc/hosts
127.0.0.1 mail.xxu.do mail #添加一行,其中 mail.xxu.do 为长主机名,mail 为短主机名
x.x.x.x mail.xxu.do mail #如果这里有你的公网地址,也可以将后面改为你的主机名,保存后退出
vim /etc/hostname
mail #将里面的内容更改为 mail,保存后退出
reboot #重启以生效
hostname #执行结束你应该看到短主机名 mail,如果你看到长主机名则设置有误
hostname -f #执行结束你应该看到长主机名 mail.xxu.do,如果你看到短主机名则设置有误
- 下载并安装 iRedMail
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz #截止20240401,最新版为 1.6.8
tar -xf iRedMail.tar.gz
cd iRedMail-1.6.8 && bash iRedMail.sh
接下来进入图形化安装界面,用 「空格」 来选中,「回车」 来下一步,过程中要停止安装可按下 「Ctrl+C」。
1. 安装,回车
2. 安装目录,保持默认即可,回车
3. 选择 web 服务器,比较熟悉 nginx,选择 nginx,回车
4. 选择数据库,选择第二项 MariaDB,回车
5. 设置数据库密码,请记住
6. 设置域,不可与 hostname 相同,本文为 xxu.do
7. 设置管理员密码,请记住
8. 接下来一路 y 即可,搭建结束后 `reboot` 重启系统以生效
配置域名记录#
- 将邮局域名解析到你的 VPS,然后申请证书并安装:
curl https://get.acme.sh | sh; apt install socat -y || yum install socat -y; ~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue -d mail.xxu.do --standalone -k ec-256 --force --insecure
~/.acme.sh/acme.sh --issue -d mail.xxu.do --webroot /var/www/html
~/.acme.sh/acme.sh --installcert -d mail.xxu.do --key-file /etc/ssl/private/iRedMail.key --fullchain-file /etc/ssl/certs/iRedMail.crt
service postfix reload;service dovecot reload;service nginx reload #重载服务
- 禁用 iRedMail 灰名单(尚不清楚有什么影响,根据教程照做)
vi /opt/iredapd/settings.py
# 将 ”greylisting” 删除,注意保持格式一直;或整行删除用下面这行代替
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
- 设置 PTR 反向解析:到你的 VPS 管理后台,设置 PTR 记录为邮局域名,本文为 mail.xxu.do,使用 「
nslookup x.x.x.x(服务器IP)
」来查询, - 设置记录:
vi /root/iRedMail-1.6.8/iRedMail.tips
#找到类似下图的部分,复制出来,删掉所有的引号和空格,首位连在一起。
得到形如下面的代码,填入 dkim._domainkey 的 Content 中:
v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Type | Name | Content |
---|---|---|
MX | xxu.do | mail.xxu.do |
TXT | xxu.do | v=spf1 mx ~all |
TXT | dkim._domainkey | 见上,形如:v=DKIM1;p=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
TXT | _dmarc | v=DMARC1; p=none; pct=100; rua=mailto@xxu.do |
配置 iRedMail#
现在,你即可访问以下页面:
https://mail.xxu.do/mail ——邮件登录地址
https://mail.xxu.do/netdata ——服务器状态监控
https://mail.xxu.do/iredadmin ——邮件服务器后台管理
账号:postmaster@你的域,本文中为 [email protected]
密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.6.8/iRedMail.tips 文件中查看
若你想要添加用户,进入邮件服务器后台管理页面并登陆,在如图所在位置添加。
测试邮件服务器#
mail-tester#
- 访问 https://www.mail-tester.com,获得测试邮箱地址
- 使用管理员账户即 [email protected] 登陆邮箱,将系统发送的三封邮件任意选择一封发送给测试邮箱地址。
- 回到 https://www.mail-tester.com,点击测试。
不出意外得到了 10 分满分。
Gmail 测试#
尝试向我的 Gmail 发送了一封邮件,但进入了垃圾邮件,手动将其标记为非垃圾邮件,随后给他人发邮件则能够正常接收。
邮件客户端支持#
协议 | 地址 | 端口 & 加密端口 |
---|---|---|
IAMP | xxu.do | 143,993 |
POP3 | xxu.do | 110,995 |
SMTP | xxu.do | 25 (需要端口开放),587 |
Outro#
在安装 iRedMail 后,其他服务无法部署了。排查后发现可能是默认安装了 nftables,vi etc/nftables.conf
修改规则后使用 systemctl restart nftables
重启服务就好了。
Reference#
此文由 Mix Space 同步更新至 xLog
原始链接为 https://xxu.do/posts/geek/iRedMail