如何在iRedMail中添加域名

之前,我们介绍过如何使用iRedMail在Ubuntu 20.04 LTS 64 bit操作系统上搭建功能全面的邮件服务器系统。iRedMail支持绑定无限多个域名,因此,若您有多个域名,您可以将他们添加到同一个邮件服务器上,无需分别搭建多个邮件服务器。

今天,我们就来介绍如何给搭建好的iRedMail添加绑定域名。本文部分内容翻译自LinuxBabe, 本文作者为香菇肥牛,本文地址为https://qing.su/article/158.html, 转载需注明原文链接。谢谢!

 

1, 准备工作

本文将用mx.qing.su来表示邮件服务器的服务器名,用88.88.88.88来代表邮件服务器的IP地址,用example.com来代表您需要添加的额外的域名。后面将不再另行说明。

首先,添加域名之前,您需要已经搭建好一个单域名的iRedMail系统。请按照这篇教程来搭建:https://qing.su/article/154.html

有了一个iRedMail邮件服务器系统,您需要为接下来额外添加的域名设置DNS解析。我们先添加如下几条,等添加好之后还需要额外添加一些记录。请前往example.com域名的DNS服务提供商,添加以下记录:

  • 添加A/AAAA记录,将example.com解析到您的网站的服务器IP或者设置为任意值;若您不打算使用这个域名做网站,可以添加A记录将example.com解析到127.0.0.1或者任意内网IP
  • 添加A记录,将mail.example.com解析到88.88.88.88
  • 添加MX记录,将example.com的MX解析值设置为mail.example.com, 优先级设置为10
  • 添加TXT记录,设置example.com的解析值为v=spf1 mx ~all

设置好DNS记录之后,我们可以开始添加绑定域名了。

 

2, 后台添加域名

在我们之前的教程中,我们提到过,在iRedMail管理面板中,可以为域名添加新用户。大家或许也注意到了,管理面板中也可以添加新域名。访问您的服务器主域名的管理面板,地址为https://mx.qing.su/iredadmin, 并用postmaster @ qing.su账户登录,来到如下图所示的界面。

点击Add –> Domain, 可以看到下面的添加域名界面。我们输入需要添加绑定的新域名,比如example.com.

点击Add即可成功添加域名。添加好之后,会进入下面这个页面。我们点击屏幕中的user添加新邮箱用户。

通常,我们需要设置一个postmaster@example.com域名,转发到主域名的postmaster邮箱。然后,您可以根据自己的需要添加其他的邮箱。

添加好邮箱后,我们进入下一步。请注意,您必须先在后台添加好域名后才能进行接下来的操作步骤;但是您无需在这时添加好所有的用户邮箱。这些邮箱可以之后再添加,不影响邮箱的使用。

 

3, 配置Nginx

添加好域名之后,我们需要更改Nginx (即RoundCube Webmail), Dovecot和Postfix设置,为这个新域名开启邮件收发。

我们依次执行:

1
2
3
4
cd /etc/nginx
touch sites-enabled/mail.domain2.com.conf
cat sites-enabled/00-default.conf | tee -a sites-enabled/mail.example.com.conf
cat sites-enabled/00-default-ssl.conf | tee -a sites-enabled/mail.example.com.conf

然后,编辑新的域名的Nginx配置文件/etc/nginx/sites-enabled/mail.example.com.conf,

找到下面这行(两次出现):

1
server_name _;

替换为:

1
server_name mail.example.com;

保存退出。由于更改了Nginx配置文件,我们需要让Nginx重新加载一下。

1
service nginx reload

接下来一部比较Tricky, 我们需要为这个新添加的域名配置SSL安全证书。如果您按照我们的教程来搭建了iRedMail邮件系统,那么您的Postfix/Dovecot只包含了一个域名的证书;如果要为新域名也添加一个新的证书,那么在Postfix/Dovecot的配置里面就会非常麻烦。这里,我们将这个新添加的域名与之前的主域名合并为一个证书,这样我们就无需额外更改Postfix/Dovecot配置了。

我们依旧使用Let’s Encrypt来添加。执行:

1
certbot certonly --webroot -d mx.qing.su,mail.example.com --cert-name mx.igpu.net

您的Let’s Encrypt证书申请界面将和下面类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You are updating certificate mx.igpu.net to include new domain(s):
+ mail.example.com

You are also removing previously included domain(s):
(None)

Did you intend to make this change?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(U)pdate cert/(C)ancel: U
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for mail.example.com
Input the webroot for mail.example.com: (Enter 'c' to cancel): /var/www/html
Waiting for verification...
Cleaning up challenges

更新证书完毕之后,我们需要重新载入Nginx, Dovecot, Postfix配置文件。

1
2
3
service nginx reload
service dovecot reload
service postfix reload

这样,我们配置好了Nginx.  此时,访问https://mail.example.com即可进入这个新域名的网页邮箱面板。

 

4, 设置DKIM与DMARC

添加第二个域名,我们还需要为这个域名设置相关的验证记录,即DKIM与DMARC记录。我们先介绍DKIM的设置。

编辑文件/etc/amavis/conf.d/50-user, 找到下面这行(我这里是第504行):

1
dkim_key('qing.su', 'dkim', '/var/lib/dkim/qing.su.pem');

在这行下面添加一行,如下:

1
dkim_key('example.com', 'dkim', '/var/lib/dkim/example.com.pem');

然后,找到下面@dkim_signature_options_bysender_maps这一段,在中间添加下面这一行:

1
"example.com" => { d => "example.com", a => 'rsa-sha256', ttl => 10*24*3600 },

添加完毕后应该如下图所示:

这样,我们即可生成密钥了。执行:

1
2
3
amavisd-new genrsa /var/lib/dkim/example.com.pem 2048
service amavis restart
amavisd-new showkeys

可以看到,我们的新域名example.com的密钥已经生成,我们将这个公钥填入DNS服务提供商,即可实现DKIM验证(TXT记录,域为dkim._domainkey.example.com, 解析值为下面那些引号中的字符串,注意仅保留首尾两个引号,移除中间的引号;若您使用CloudFlare的DNS服务,则首尾的引号也需要去掉)。

设置好DKIM记录后,您可以在服务器上执行:

1
amavisd-new testkeys

如果看到类似下面的输出,则说明DKIM验证正确:

1
2
TESTING#1 qing.su: dkim._domainkey.qing.su => pass
TESTING#2 example.com: dkim._domainkey.example.com => pass

 

最后,我们设置DMARC记录。简单起见,我们仅需为_dmarc.example.com设置TXT记录,解析值为:

1
"v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@example.com"

同样地,如果您使用的是CloudFlare的DNS服务,请移除首尾的引号,因为CloudFlare会自动帮您添加一对引号。

 

至此,我们成功地为iRedMail邮件服务器添加绑定了新域名。如果您有其他的域名需要绑定,需要重复上面的步骤。

若您有任何疑问,欢迎在这里留言,我将尽力解答。本文作者为香菇肥牛,本文地址为https://qing.su/article/158.html, 转载需注明原文链接。谢谢!

 

6 thoughts on “如何在iRedMail中添加域名”

    • 如果要添加域名且作为hostname之一需要这样操作;如果只需要添加一个域名及基于该域名的邮箱,然后用原来的hostname作为服务器地址收发信,那么只需要在iRedMail后台添加域名就可以了,不需要这些操作。

      Reply
  1. 根据您的文档部署,添加完第二个邮箱地址之后,发送邮件出现一个问题,第二个邮箱发送的邮件里面发送人是 B邮箱根据A域名发送(B为新域名,A为旧域名),这个应该如何处理成只留B域名呢

    Reply
  2. 晚上按你这个教程做,全部都是好好的,就是不能收发邮件,博主能给个解决方法么?

    感谢不尽

    Reply

Leave a Comment