Jayden

Jayden

iRedMail 部署

Intro#

为给 mix-space 添加回复邮件订阅及通知,遂打算自建邮局。

网上搜寻了一圈,iRedMail 功能强大,使用简单,部署起来也不算复杂,搞!

如果你也想部署,你需要拥有:

  1. 一台 VPS,最好支持 Reverse DNS。
  2. 一个域名(当然啦)

本文基于 ubuntu 22.04 lts,使用域名为 xxu.do,你可以参考。

正式安装#

准备系统及安装#

  1. 更新你的软件包并安装所需软件包:
sudo apt update
sudo apt upgrade
sudo apt install wget curl sudo tar socat bind9-utils -y
  1. 计划将 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,如果你看到短主机名则设置有误
  1. 下载并安装 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` 重启系统以生效

配置域名记录#

  1. 将邮局域名解析到你的 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 #重载服务
  1. 禁用 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"]
  1. 设置 PTR 反向解析:到你的 VPS 管理后台,设置 PTR 记录为邮局域名,本文为 mail.xxu.do,使用 「nslookup x.x.x.x(服务器IP)」来查询,
  2. 设置记录:
vi /root/iRedMail-1.6.8/iRedMail.tips
#找到类似下图的部分,复制出来,删掉所有的引号和空格,首位连在一起。

image

得到形如下面的代码,填入 dkim._domainkey 的 Content 中:

v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TypeNameContent
MXxxu.domail.xxu.do
TXTxxu.dov=spf1 mx ~all
TXTdkim._domainkey见上,形如:v=DKIM1;p=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TXT_dmarcv=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#

  1. 访问 https://www.mail-tester.com,获得测试邮箱地址
  2. 使用管理员账户即 [email protected] 登陆邮箱,将系统发送的三封邮件任意选择一封发送给测试邮箱地址。
  3. 回到 https://www.mail-tester.com,点击测试。

不出意外得到了 10 分满分。

Gmail 测试#

尝试向我的 Gmail 发送了一封邮件,但进入了垃圾邮件,手动将其标记为非垃圾邮件,随后给他人发邮件则能够正常接收。

邮件客户端支持#

协议地址端口 & 加密端口
IAMPxxu.do143,993
POP3xxu.do110,995
SMTPxxu.do25 (需要端口开放),587

Outro#

在安装 iRedMail 后,其他服务无法部署了。排查后发现可能是默认安装了 nftables,vi etc/nftables.conf 修改规则后使用 systemctl restart nftables 重启服务就好了。

Reference#

  1. 自建企业级邮件服务器、域名邮箱!iRedMail 企业级邮件系统搭建、配置、优化教程!
  2. 官方文档
  3. 请教 iredmail 邮局搭建端口问题

此文由 Mix Space 同步更新至 xLog
原始链接为 https://xxu.do/posts/geek/iRedMail


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。