如何使用Nginx在iRedMail中托管多个邮件域

本教程将向您展示如何使用iRedMail设置多个电子邮件域(虚拟主机),这是设置自己的电子邮件服务器的简便方法。

先决条件

为了遵循本教程,假设

  • 您已经设置了一个域的iRedMail服务器。
  • 您正在使用iRedMail 0.9.8或更高版本,它使用Nginx来提供Webmail。 0.9.8版中删除了对Apache Web服务器的支持。

你需要做什么

如果要托管多个邮件域,则需要

  • 在iRedMail管理面板中添加新的邮件域和用户。
  • 为新的邮件域创建MX,A和SPF记录。
  • 为其他域设置DKIM签名
  • 为新域设置DMARC记录。
  • 为多个域设置RoundCube Webmail,Postfix和Dovecot

反向DNS检查用于检查发件人的IP地址是否与HELO主机名匹配。 添加新的邮件域时,无需添加其他PTR记录。

第1步:在iRedMail管理面板中添加其他域

使用postmaster帐户登录iRedMail管理面板。 (https://mail.your-domain.com/iredadmin),然后在 Add 标签。

接下来,在新域下添加一个用户。

iredmail多个域ssl

步骤2:为新邮件域创建MX,A和SPF记录

在您的DNS管理器中,为新域添加MX记录,如下所示。

Record Type    Name      Value

MX             @         mail.domain2.com

A记录指向您的邮件服务器的IP地址。

Record Type    Name     Value

A              mail     IP-address-of-mail-server

如果您的服务器使用IPv6地址,请确保添加AAAA记录。

然后创建SPF记录,以允许MX主机发送新邮件域的电子邮件。

Record Type    Name      Value

TXT            @         v=spf1 mx ~all

步骤3:为新域设置DKIM签名

您需要告诉amavisd对新邮件域的每个外发电子邮件进行签名。 编辑 /etc/amavis/conf.d/50-user 文件。

sudo nano /etc/amavis/conf.d/50-user

找到以下行,

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

添加另一行以指定第二个域的私钥的位置。

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

@dkim_signature_options_bysender_maps 部分,添加以下行。

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

amavis dkim签名

保存并关闭文件。 然后生成第二个域的私钥。

sudo amavisd-new genrsa /var/lib/dkim/domain2.com.pem 2048

重新启动Amavis。

sudo systemctl restart amavis

显示公钥。

sudo amavisd-new showkeys

将显示所有公共密钥。 我们需要第二个域的公钥,该公钥位于括号中。

amavis显示键

在您的DNS管理器中,为第二个域创建TXT记录。 输入 dkim._domainkey 在名称字段中。 复制括号中的所有内容并将其粘贴到value字段中。 删除所有双引号。 (您可以先将其粘贴到文本编辑器中,删除所有双引号,然后将其复制到DNS管理器中。DNS管理器可能会要求您删除其他无效字符,例如回车。)

新的ubuntu

保存更改后。 使用此命令检查TXT记录。

dig TXT dkim._domainkey.domain2.com

现在,您可以运行以下命令来测试DKIM DNS记录是否正确。

sudo amavisd-new testkeys

如果DNS记录正确,则测试将通过。

TESTING#1 domain1.com: dkim._domainkey.domain1.com => pass
TESTING#2 domain2.com: dkim._domainkey.domain2.com => pass

步骤4:为新域设置DMARC记录

要创建DMARC记录,请转到您的DNS管理器并添加一个 文本 记录。 在名称字段中,输入 _dmarc。 在值字段中,输入以下内容:

v=DMARC1; p=none; pct=100; rua=mailto:[email protected]

创建dmarc记录txt

上面的DMARC记录是一个安全的起点。 要查看DMARC的完整说明,请查看以下文章。

  • 创建DMARC记录以保护您的域名免遭电子邮件欺骗

步骤5:为多个域设置RoundCube,Postfix和Dovecot

让第一个域的用户使用 mail.domain1.com 和第二个域的用户使用 mail.domain2.com 使用RoundCube网络邮件时。

将工作目录更改为 /etc/nginx/

cd /etc/nginx/

为中的第二个域创建一个空白服务器阻止文件 /etc/nginx/sites-enabled/ 目录。

sudo touch sites-enabled/mail.domain2.com.conf

将默认的HTTP站点配置复制到该文件。

cat sites-enabled/00-default.conf | sudo tee -a sites-enabled/mail.domain2.com.conf

将默认的SSL站点配置复制到该文件。

cat sites-enabled/00-default-ssl.conf | sudo tee -a sites-enabled/mail.domain2.com.conf

编辑虚拟主机文件。

sudo nano sites-enabled/mail.domain2.com.conf

找到以下行。

server_name _;

我们需要将server_name更改为 mail.domain2.com,因为稍后我们需要使用Certbot生成新的tls证书。

server_name mail.domain2.com;

有2个实例 server_name,您需要同时更改它们。 保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,请重新加载Nginx以使更改生效。

sudo systemctl reload nginx

现在,使用Certbot webroot插件来获取所有邮件域的TLS证书,因此您将拥有一个带有多个域名的TLS证书。

sudo certbot certonly --webroot --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address -w /var/www/html

请注意,在上述命令中,我们使用第一个邮件域指定了证书名称,该域名将在文件路径中使用,因此您不必在Postfix或Dovecot配置文件中更改文件路径。

当询问您是否要更新现有证书以包括新域时,请回答U并按Enter。

certbot多域iredmail

现在,您应该看到以下消息,表明已成功获取多域证书。

iredmail nginx多个域

重新加载Nginx以获取新证书。

sudo systemctl reload nginx

现在,您应该能够使用其他域来访问RoundCube Webmail。 另外,您还需要重新加载Postfix SMTP服务器和Dovecot IMAP服务器,以使它们获取新证书。

sudo systemctl reload postfix

sudo systemctl reload dovecot

在计算机或移动设备上使用邮件客户端

启动您的桌面电子邮件客户端(例如Mozilla Thunderbird)并添加第二个域的邮件帐户。

  • 在“传入服务器”部分中,选择“ IMAP协议”,输入 mail.domain2.com 作为服务器名称,选择端口143和STARTTLS。 选择 normal password 作为身份验证方法。
  • 在“传出”部分中,选择“ SMTP协议”,输入 mail.domain2.com 作为服务器名称,选择端口587和STARTTLS。 选择 normal password 作为身份验证方法。

iredmail多个域后缀鸽

暗示:您还可以将端口993与SSL / TLS加密一起用于IMAP,并将端口465与SSL / TLS加密一起用于SMTP。 你应该 使用端口25作为SMTP端口来提交传出电子邮件。

尽管Postfix SMTP服务器和Dovecot IMAP服务器在与其他人通信时使用的是第一个邮件域的主机名(mail.domain1.com),但它们现在使用的是多域证书,因此邮件客户端将不会显示证书警告。

SPF和DKIM检查

现在,您可以使用桌面电子邮件客户端或Webmail客户端将测试电子邮件发送到 [email protected] 并获得免费的电子邮件身份验证报告。 这是我从port25.com获得的报告

postfix spf dkim Ubuntu

不要忘了在https://www.mail-tester.com上测试您的电子邮件评分,并使用GlockApps测试电子邮件的位置。

如果DKIM检查失败,则可以转到https://www.dmarcanalyzer.com/dkim/dkim-check/查看DKIM记录是否存在任何错误。

dmarc分析器dkim记录检查器

如果您的电子邮件仍然被标记为垃圾邮件怎么办?

在本文中,我为您提供了更多提示:如何停止将您的电子邮件标记为垃圾邮件。 尽管需要一些时间和精力,但应用这些提示后,您的电子邮件最终将被放置在收件箱中。

而已! 我希望本教程可以帮助您使用iRedMail托管多个电子邮件域。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar