はじめに
mix-space に返信メールの購読と通知を追加するため、自分でメールサーバーを立てることにした。
いろいろ探してみたところ、iRedMail は機能が強力で、使い方も簡単、デプロイもそこまで複雑ではない。よし、やろう。
もし導入したいなら、必要なものは次のとおり:
- VPS 1台。できれば逆引き DNS(Reverse DNS)に対応しているもの。
- ドメイン1つ(もちろん)
この記事は 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
このあとはグラフィカルなインストーラーが起動する。スペースキーで選択、Enter キーで次へ進む。途中で止めたいときは「Ctrl+C」を押す。
1. 安装,回车
2. 安装目录,保持默认即可,回车
3. 选择 web 服务器,比较熟悉 nginx,选择 nginx,回车
4. 选择数据库,选择第二项 MariaDB,回车
5. 设置数据库密码,请记住
6. 设置域,不可与 hostname 相同,本文为 xxu.do
7. 设置管理员密码,请记住
8. 接下来一路 y 即可,搭建结束后 `reboot` 重启系统以生效
DNS レコードの設定
- メールサーバーに使うドメインを VPS の IP に解決させ、証明書を取得してインストールする:
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
| 種別 | 名前 | 内容 |
|---|---|---|
| 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:dmarc@xxu.do |
iRedMail の設定
これで以下のページにアクセスできる:
https://mail.xxu.do/mail ——邮件登录地址
https://mail.xxu.do/netdata ——服务器状态监控
https://mail.xxu.do/iredadmin ——邮件服务器后台管理
账号:postmaster@你的域,本文中为 postmaster@xxu.do
密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.6.8/iRedMail.tips 文件中查看
ユーザーを追加したい場合は、メールサーバーの管理画面にログインし、画像の位置で追加する。

ユーザー追加
メールサーバーのテスト
mail-tester
- https://www.mail-tester.com にアクセスして、テスト用のメールアドレスを取得する。
- 管理者アカウント(postmaster@xxu.do)でメールボックスにログインし、システムから届いた3通のメールのうち、任意の1通をテスト用のメールアドレスに送信する。
- https://www.mail-tester.com に戻り、テストをクリックする。
案の定、10点満点を獲得できた。
Gmail テスト
自分の Gmail 宛てにメールを送ってみたが、迷惑メールに入ってしまった。手動で「迷惑メールではない」とマークすると、それ以降はほかの人宛ても正常に届くようになった。
メールクライアント対応
| プロトコル | アドレス | ポート/暗号化ポート |
|---|---|---|
| IMAP | xxu.do | 143,993 |
| POP3 | xxu.do | 110,995 |
| SMTP | xxu.do | 25(ポートの開放が必要),587 |
おわりに
iRedMail をインストールした後、ほかのサービスがデプロイできなくなってしまった。調べてみると、原因はおそらく nftables がデフォルトでインストールされていたこと。vi etc/nftables.conf でルールを修正して、systemctl restart nftables でサービスを再起動したら直った。