• 如何在Modoboa邮件服务器中托管多个域

    本教程将向您展示如何使用Modoboa设置多个电子邮件域(虚拟托管),这是一个易于使用且开源的邮件托管解决方案。为了学习本教程,假设您已经使用一个域名设置了Modoboa邮件服务器。 你需要做什么 如果要承载多个邮件域,则需要 在Modoboa管理面板中添加新的邮件域和用户。 为新邮件域创建MX、A、SPF、DKIM和DMARC记录。 为多个域设置Webmail、Postfix和Dovecot PTR记录用于检查发送方的IP地址是否与HELO主机名匹配。添加新邮件域时,无需添加其他PTR记录。 步骤1:在Modoboa管理面板中添加其他域 使用管理员帐户登录Modoboa管理面板。(https://mail.your-domain.com/admin)然后转到“域”选项卡,单击“添加”按钮添加新域。 然后在“名称”字段中输入主域名。强烈建议您启用DKIM签名,这有助于提高您的域声誉。在键选择器字段中,您可以输入一个随机单词,如modoboa。选择2048作为密钥长度。 在下一个屏幕中,您可以选择为您的域创建管理员帐户。SMTP协议要求邮件服务器应该有一个[email protected]地址。 点击提交按钮,你的新域名将被添加到Modoboa中。 要添加电子邮件地址,请转到“域”选项卡,然后单击第二个域名。 然后单击邮箱。 单击添加按钮并选择帐户。 然后选择简单用户作为角色。在用户名字段中输入电子邮件地址,然后输入密码。 在下一个屏幕中,您可以选择为此电子邮件地址创建别名。 单击提交按钮后,将创建电子邮件地址。 步骤2:为新邮件域创建MX、A、SPF、DKIM和DMARC记录 MX和一张唱片 在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、DKIM和DMARC记录 然后创建SPF记录,以允许MX主机为新邮件域发送电子邮件。 Record Type Name Value TXT   @   v=spf1 mx ~all 要创建DKIM记录,我们需要获取公钥。转到Modoboa管理面板,在域选项卡中选择第二个域名。在DNS部分,单击显示密钥按钮。 将显示第二个域的公钥。有两种格式。我们只需要绑定/命名格式。 转到DNS管理器,创建一个TXT记录,输入modoboa_名称字段中的domainkey。(回想一下,在管理面板中添加第二个域名时,我们使用了modoboa作为选择器。)复制括号中的所有内容并粘贴到值字段中。删除所有双引号。DNS管理器可能会要求您删除其他无效字符,例如回车符。 请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/,输入modoboa作为选择器,并输入您的域名以检查DKIM记录传播。 要创建DMARC记录,请转到DNS管理器并添加TXT记录。在名称字段中,输入_dmarc。在“值”字段中,输入以下内容: v=DMARC1; p=none; pct=100; rua=mailto:[email protected] 上述DMARC记录是一个安全的起点。要查看DMARC的完整解释,请查看以下文章。 创建DMARC记录以保护您的域名免受电子邮件欺骗 第3步:为多个域设置Webmail、Postfix和Dovecot 让第一个域的用户使用邮件是有道理的。域1。com和第二个域的用户使用邮件。域2。com访问网络邮件时。 首先,我们需要将第二个邮件域添加到允许的主机列表中。编辑设置。py文件。 sudo nano /srv/modoboa/instance/instance/settings.py 找到下面几行。 ALLOWED_HOSTS = [ 'mail.domain1.com', ] 添加第二个域。 ALLOWED_HOSTS = [ 'mail.domain1.com', 'mail.domain2.com', ] 保存并关闭文件。然后重新启动uWSGI以使更改生效。 sudo systemctl restart uwsgi 接下来,我们需要在第二个域中创建一个Nginx虚拟主机文件。将工作目录更改为/etc/nginx/sites enabled。 cd /etc/nginx/sites-enabled 将第一个邮件域虚拟主机文件的内容复制到第二个域虚拟主机文件。 sudo cp mail.domain1.com.conf mail.domain2.com.conf 编辑第二个域虚拟主机文件。 sudo nano mail.domain2.com.conf 找到下面这行。 server_name mail.domain1.com; 我们需要将服务器名称更改为mail。域2。通用域名格式 server_name mail.domain2.com; 服务器名称有两个实例,您需要同时更改这两个实例。(请注意,您不应更改SSL证书路径中的域名。)然后注释掉下面三行,因为这个上游已经在邮件中定义了。域1。通用域名格式。conf文件。 upstream modoboa { server unix:/run/uwsgi/app/modoboa_instance/socket fail_timeout=0; } 保存并关闭文件。然后测试Nginx配置。 sudo nginx -t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl reload nginx 确保在Debian/Ubuntu服务器上安装了cerbot。 sudo apt install certbot python3-certbot-nginx 在CentOS/RHEL上,运行以下命令安装certbot。 sudo dnf install certbot python3-certbot-nginx 现在,使用Certbot nginx插件为所有邮件域获取TLS证书,这样您将拥有一个包含多个域名的TLS证书,邮件客户端将不会抛出安全警告。 sudo certbot certonly --nginx --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address 请注意,在上面的命令中,我们使用第一个邮件域指定了证书名,该域将在文件路径中使用,因此您不必在Postfix或Dovecot配置文件中更改文件路径。还要注意,我们告诉certbot只获取证书,而不安装证书(certonly)。 当它询问您是否要更新现有证书以包含新域时,请回答U并按Enter键。 现在您应该会看到以下消息,这表明已成功获取多域证书。 重新加载Nginx以获取新证书。 sudo systemctl reload nginx 您现在应该能够使用不同的域来访问webmail。此外,您还需要重新加载Postfix SMTP服务器和Dovecot IMAP服务器,以便让它们获取新证书。 sudo systemctl reload postfix dovecot 在计算机或移动设备上使用邮件客户端 启动你的桌面电子邮件客户端,比如Mozilla Thunderbird,并添加第二个域的邮件帐户。 在“传入服务器”部分,选择IMAP协议,输入mail。域2。com作为服务器名,选择端口143和STARTTLS。选择普通密码作为身份验证方法。 在“发送”部分,选择SMTP协议,输入mail。域2。com作为服务器名,选择端口587和STARTTLS。选择普通密码作为身份验证方法。 提示:您还可以将端口993用于IMAP的SSL/TLS加密,将端口465用于SMTP的SSL/TLS加密。您不应该在邮件客户端中使用端口25作为SMTP端口来提交发送的电子邮件。 虽然Postfix SMTP服务器和Dovecot IMAP服务器在与其他服务器通信时使用第一个邮件域(mail.domain1.com)的主机名,但它们现在使用的是多域证书,因此邮件客户端不会显示证书警告。 SPF和DKIM检查 现在,您可以使用桌面电子邮件客户端或webmail客户端向[email protected]发送测试电子邮件,并获得免费的电子邮件身份验证报告。这是我从25号端口收到的报告。通用域名格式 别忘了在网上测试你的电子邮件分数https://www.mail-tester.com还可以使用GlockApps测试电子邮件的放置。 如果DKIM检查失败,您可以转到https://www.dmarcanalyzer.com/dkim/dkim-check/查看您的DKIM记录是否有任何错误。 如果你的电子邮件仍被标记为垃圾邮件呢? 在这篇文章中,我有更多的建议:7个有效的建议来阻止你的电子邮件被标记为垃圾邮件。虽然这需要一些时间和精力,但在应用这些技巧后,你的电子邮件最终会被放入收件箱。 多个邮件域的RDN? 反向DNS(RDN),又名PTR记录,用于检查发送方的IP地址是否与HELO主机名匹配。添加新邮件域时,无需添加其他PTR记录。您的RDN应该只设置一个主机名,即Postfix中设置的主机名,可以通过以下命令显示。 postconf myhostname rDNS是IP地址的记录。这不是域名的记录。如果只有一个IP地址,那么只需要一条指向一个主机名的rDNS记录。反向DNS检查不会验证发件人:域在您的电子邮件中,只要您的IP地址有rDNS记录,并且主机名可以解析回相同的IP地址,您就可以通过反向DNS检查。 此外,在一台服务器上托管多个域时,不需要在Postfix中更改以下设置。 我的主机名 肌动蛋白 我的目的地 托管电子邮件服务,如G Suite和Microsoft Exchange Online,都使用一个主机名作为服务器,为客户发送电子邮件。G套件用户发送的电子邮件都使用谷歌。主机名中的com和Microsoft Exchange Online用户发送的电子邮件都使用outlook。主机名中的com。对于其他电子邮件服务提供商,如Mailchimp、SendinBlue、SendPluse等,情况也是如此。它们都为单个服务器使用一个主机名,而一个IP地址只有一个RDN记录。 如何在Modoboa邮件服务器中托管多个域 Autodiscover and AutoConfig make it easy to configure a desktop or mobile mail client. The end user just need to enter a name, email address and password to set up his/her mail account, without having to enter the SMTP or IMAP server details. Setting up Autodiscover and AutoConfig for multiple domains requires 2 simple steps. First, create CNAME records for the second domain in your DNS manager, autoconfig.domain2.com CNAME mail.domain2.com autodiscover.domain2.com CNAME mail.domain2.com Then go to the Nginx virtual host directory. cd /etc/nginx/sites-enabled/ Copy the autoconfig virtual host for the second domain. sudo cp autoconfig.domain1.com.conf autoconfig.domain2.com.conf Edit the new virtual host file. sudo nano autoconfig.domain2.com.conf Find the following line. server_name autoconfig.domain1.com; We need to change the server_name to autoconfig.domain2.com server_name autoconfig.domain2.com; Then comment out the following 3 lines, because this upstream has already been defined in the autoconfig.domain1.com.conf file, we can’t define it again. upstream automx { server unix:/run/uwsgi/app/automx_instance/socket fail_timeout=0; } Save and close the file. Then test Nginx configuartion. sudo nginx -t If the test is successful, reload Nginx for the changes to take effect. sudo systemctl reload nginx Now you can test the Autodiscover and AutoConfig feature in Microsoft Outlook and Mozilla Thunderbird mail client. By default, AutoMX will send the first hostname (mail.domain1.com) to mail clients who request Autodiscover and AutoConfig info, which means Microsoft Outlook and Mozilla Thunderbird would use mail.domain1.com as the SMTP server and IMAP server for the second domain. This works, but isn’t perfect. If you want Microsoft Outlook and Mozilla Thunderbird to use mail.domain2.com as SMTP and IMAP server address for the second domain, then edit the AutoMX configuration file. sudo nano /etc/automx.conf Create a new section for the second domain at the end of this file. [domain2.com] Then copy the lines from the [global] section and change the domain name. [domain2.com] backend = sql action = settings account_type = email host = postgres://modoboa:[email protected]/modoboa query = SELECT first_name || ' ' || last_name AS display_name, email, SPLIT_PART(email, '@', 2) AS domain FROM core_user WHERE email='%s' AND is_active result_attrs = display_name, email smtp = yes smtp_server = mail.domain2.com smtp_port = 587 smtp_encryption = starttls smtp_auth = plaintext smtp_auth_identity = ${email} smtp_refresh_ttl = 6 smtp_default = yes imap = yes imap_server = mail.domain2.com imap_port = 143 imap_encryption = starttls imap_auth = plaintext imap_auth_identity = ${email} imap_refresh_ttl = 6 pop = yes pop_server = mail.domain2.com pop_port = 110 pop_encryption = starttls pop_auth = plaintext pop_auth_identity = ${email} Save and close the file. Then restart AutoMX. sudo systemctl restart uwsgi Wrapping Up That’s it! I hope this tutorial helped you host multiple email domains with Modoboa. As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks. Take care ?

    2022.03.23 浏览:722
  • 如何处理Microsoft Outlook IP黑名单

    在之前的教程中,我解释了如何使用iRedMail或Modoboa轻松设置自己的邮件服务器,并分享了一些从黑名单中删除IP地址的技巧。然而,有些人很难摆脱Outlook使用的Microsoft Outlook IP黑名单。com,hotmail。现场直播。com和msn。com邮件服务器。 如果您的IP地址被阻止,Microsoft Outlook通常会发回以下消息。 host eur.olc.protection.outlook.com[104.47.22.161] said: 550 5.7.1 Unfortunately, messages from [xx.xx.xx.xx] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [DB8EUR06FT013.eop-eur06.prod.protection.outlook.com] (in reply to MAIL FROM command) 正如你所见,整个IP范围都被屏蔽了。就我个人而言,我不认为应该使用这种反垃圾邮件技术,因为它会对合法发件人造成附带损害。相比之下,Gmail在处理IP声誉方面要聪明得多。您可以提交发件人信息表单来解决此问题。有时微软会解锁你的IP地址,有时你的请求会被拒绝。 让你的IP地址脱离Outlook黑名单的可靠方法是让你的邮件服务器通过返回路径认证。然而,它非常昂贵。你需要一次性支付200美元的申请费和每年至少1375美元的许可费。我将向您展示一种绕过Outlook IP黑名单的免费方法。 使用SMTP中继服务绕过Microsoft Outlook IP黑名单 您可以将邮件服务器配置为通过SMTP中继服务中继电子邮件。他们保持着良好的IP声誉,所以你的电子邮件可以通过IP黑名单。有许多SMTP中继服务。有些收取一点费用,有些每月提供免费配额。 您不必配置邮件服务器来转发所有电子邮件。我将向您展示如何配置Postfix SMTP服务器,以中继发送到outlook的电子邮件。com,hotmail。现场直播。com和msn。com电子邮件地址,所以你不会很快用完免费配额。现在使用微软邮箱的人不多了。我的订户中只有6.5%使用hotmail、outlook、live和msn电子邮件地址。 这里我推荐SendinBlue SMTP中继服务,它允许你每月免费发送9000封电子邮件。不需要信用卡。 配置SendinBlue SMTP中继 在SendinBlue创建一个免费帐户。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。 请注意,您可能需要联系Sendinblue客户服务以激活事务性电子邮件服务。 SSH连接到邮件服务器,并安装libsasl2 modules包,这是SASL身份验证所必需的。 sudo apt install libsasl2-modules 如果您使用CentOS/Rocky Linux/Alma Linux,请安装以下软件包。 sudo dnf install cyrus-sasl-plain cyrus-sasl-md5 接下来,使用命令行文本编辑器(如Nano)打开Postfix主配置文件。 sudo nano /etc/postfix/main.cf 在该文件末尾添加以下行。 transport_maps = regexp:/etc/postfix/transport.microsoft 暗示 如果使用iRedMail,可以找到transport_maps参数并添加regexp行。 transport_maps = regexp:/etc/postfix/transport.microsoft proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf 如果使用Modoboa,可以找到tranport_maps参数并添加regexp行。 transport_maps = regexp:/etc/postfix/transport.microsoft proxy:mysql:/etc/postfix/sql-transport.cf proxy:mysql:/etc/postfix/sql-spliteddomains-transport.cf 然后将以下行添加到此文件的末尾。 # outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noplaintext, noanonymous smtp_tls_security_level = may header_size_limit = 4096000 保存并关闭文件。接下来,创建/etc/postfix/transport。微软文件。 sudo nano /etc/postfix/transport.microsoft 在此文件中添加以下行。这会告诉Postfix,如果收件人是Microsoft邮箱用户,请使用Sendinblue SMTP中继。 /.*@(outlook|hotmail|live|msn)/..*/i relay:[smtp-relay.sendinblue.com]:587 保存并关闭文件。创建。数据库文件。 sudo postmap /etc/postfix/transport.microsoft 接下来,创建/etc/postfix/sasl_passwd文件。 sudo nano /etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp-relay.sendinblue.com]:587 smtp_username:smtp_password 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap /etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 从现在起,Postfix将使用Sendinblue SMTP中继向Microsoft邮箱用户发送电子邮件。您可以向hotmail发送测试电子邮件。com,outlook。现场直播。com或msn。com电子邮件地址。 请注意,您需要单击发件人&在您的帐户仪表板中的IPs选项卡添加您的域。 在SendinBlue中设置SPF/DKIM身份验证 在SendinBlue仪表板中,单击右上角的帐户名,然后单击Senders&IP。选择域选项卡->管理->验证这个域。 一个弹出窗口出现。您需要为您的域添加前3条记录。     故障排除提示 如果您的Postfix SMTP服务器无法通过SMTP中继发送电子邮件,并且您在邮件日志(/var/log/mail.log)中看到以下错误。 sasl authentication failed cannot authenticate to server no mechanism available 这可能是因为您的系统缺少libsasl2 modules包,可以使用以下命令安装该包。 sudo apt install libsasl2-modules 然后重新启动Postfix。 sudo systemctl restart postfix 注意:上述错误有时可能是由SMTP中继服务器上的无效TLS证书(自签名或过期)引起的。然而,使用Sendinblue时很少发生这种情况。 从垃圾邮件文件夹中取出 SMTP中继服务可以让你绕过IP黑名单,但这并不意味着你的电子邮件将100%进入收件箱。您的电子邮件可能会被放入垃圾邮件文件夹。如果您遵守电子邮件发送最佳实践,您的电子邮件最终将被放入收件箱文件夹。 我创建了一个新的hotmail。com邮箱作为测试。从我的域名发送的前3份新闻稿被放在垃圾邮件文件夹中,但所有剩余的电子邮件都被放在收件箱文件夹中。我没有在我的Hotmail帐户中做任何事情。我没有打开我的通讯或点击通讯中的任何链接。我只是使用最佳实践发送电子邮件,所以微软知道我的电子邮件不是垃圾邮件。 远离微软黑名单的小贴士 如果Microsoft在一段时间内未发现您的邮件服务器存在垃圾邮件活动,则可能会将您的IP地址从黑名单中删除。以下是一些防止你的IP地址再次被列入黑名单的建议。 不要立即将带有此IP地址的新闻稿发送给Microsoft邮箱用户。你应该首先发送事务性电子邮件,以提高你在微软的IP声誉。 如果你发送时事通讯,一定要预热你的IP地址。 你可以登录Outlook。com智能网络数据服务,用于检查您在Microsoft的IP声誉。如果您的IP地址在给定的一天发送超过100条消息,您可以单击查看数据链接查看您的IP地址的邮件流量和垃圾邮件数据。 Microsoft使用3种颜色来区分IP地址的垃圾邮件率: 红色:垃圾邮件>90% 黄色:10%<垃圾邮件<90% 绿色:垃圾邮件<10% 从两张截图中可以看出,我的IP声誉有所提高。 收尾 我希望本教程能帮助您绕过Microsoft Outlook IP黑名单。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费通讯,获取更多有用的教程?

    2022.03.24 浏览:1249
  • 如何使用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管理面板中添加其他域 使用邮局主管帐户登录iRedMail管理面板。(https://mail.your-domain.com/iredadmin)然后在添加选项卡中添加域。 接下来,在新域下添加一个用户。 步骤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 }, 保存并关闭文件。然后为第二个域生成私钥。 sudo amavisd-new genrsa /var/lib/dkim/domain2.com.pem 2048 重启阿玛维斯。 sudo systemctl restart amavis 显示公共密钥。 sudo amavisd-new showkeys 将显示所有公钥。我们需要第二个域的公钥,它在括号中。 在DNS管理器中,为第二个域创建一个TXT记录。进入dkim_名称字段中的domainkey。复制括号中的所有内容并粘贴到值字段中。删除所有双引号。(您可以先将其粘贴到文本编辑器中,删除所有双引号,然后将其复制到DNS管理器。DNS管理器可能会要求您删除其他无效字符,例如回车符。) 保存更改后。用这个命令检查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 请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/,输入dkim作为选择器,并输入您的域名以检查dkim记录传播。 步骤4:为新域设置DMARC记录 要创建DMARC记录,请转到DNS管理器并添加TXT记录。在名称字段中,输入_dmarc。在“值”字段中,输入以下内容: v=DMARC1; p=none; pct=100; rua=mailto:[email protected] 上述DMARC记录是一个安全的起点。要查看DMARC的完整解释,请查看以下文章。 创建DMARC记录以保护您的域名免受电子邮件欺骗 第5步:为多个域设置RoundCube、Postfix和Dovecot 让第一个域的用户使用邮件是有道理的。域1。com和第二个域的用户使用邮件。域2。com使用RoundCube webmail时。 将工作目录更改为/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 _; 我们需要将服务器名称更改为mail。域2。com,因为稍后我们需要使用Certbot生成新的tls证书。 server_name mail.domain2.com; 服务器名称有两个实例,您需要同时更改这两个实例。保存并关闭文件。然后测试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键。 现在您应该会看到以下消息,这表明已成功获取多域证书。 如果遇到以下错误, Detail: Invalid response from [xx.xx.xx.xx]: 404 然后需要使用certbot nginx插件来获取TLS证书。 sudo apt install python3-certbot-nginx sudo certbot certonly -a nginx --agree-tos -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email your-email-address 获得TLS证书后,重新加载Nginx以获取新证书。 sudo systemctl reload nginx 您现在应该可以使用不同的域来访问RoundCube webmail。此外,您还需要重新加载Postfix SMTP服务器和Dovecot IMAP服务器,以便让它们获取新证书。 sudo systemctl reload postfix dovecot 在计算机或移动设备上使用邮件客户端 启动你的桌面电子邮件客户端,比如Mozilla Thunderbird,并添加第二个域的邮件帐户。 在“传入服务器”部分,选择IMAP协议,输入mail。域2。com作为服务器名,选择端口143和STARTTLS。选择普通密码作为身份验证方法。 在“发送”部分,选择SMTP协议,输入mail。域2。com作为服务器名,选择端口587和STARTTLS。选择普通密码作为身份验证方法。 提示:您还可以将端口993用于IMAP的SSL/TLS加密,将端口465用于SMTP的SSL/TLS加密。您不应该使用端口25作为SMTP端口来提交发送的电子邮件。 虽然Postfix SMTP服务器和Dovecot IMAP服务器在与其他服务器通信时使用第一个邮件域(mail.domain1.com)的主机名,但它们现在使用的是多域证书,因此邮件客户端不会显示证书警告。 SPF和DKIM检查 现在,您可以使用桌面电子邮件客户端或webmail客户端向[email protected]发送测试电子邮件,并获得免费的电子邮件身份验证报告。这是我从25号端口收到的报告。通用域名格式 别忘了在网上测试你的电子邮件分数https://www.mail-tester.com还可以使用GlockApps测试电子邮件的放置。 如果DKIM检查失败,您可以转到https://www.dmarcanalyzer.com/dkim/dkim-check/查看您的DKIM记录是否有任何错误。 如果你的电子邮件仍被标记为垃圾邮件呢? 在这篇文章中,我有更多的建议:7个有效的建议来阻止你的电子邮件被标记为垃圾邮件。虽然这需要一些时间和精力,但在应用这些技巧后,你的电子邮件最终会被放入收件箱。 多个邮件域的RDN? 反向DNS(RDN),又名PTR记录,用于检查发送方的IP地址是否与HELO主机名匹配。添加新邮件域时,无需添加其他PTR记录。您的RDN应该只设置一个主机名,即Postfix中设置的主机名,可以通过以下命令显示。 postconf myhostname rDNS是IP地址的记录。这不是域名的记录。如果只有一个IP地址,那么只需要一条指向一个主机名的rDNS记录。反向DNS检查不会验证发件人:域在您的电子邮件中,只要您的IP地址有rDNS记录,并且主机名可以解析回相同的IP地址,您就可以通过反向DNS检查。 此外,在一台服务器上托管多个域时,不需要在Postfix中更改以下设置。 我的主机名 肌动蛋白 我的目的地 托管电子邮件服务,如G Suite和Microsoft Exchange Online,都使用一个主机名作为服务器,为客户发送电子邮件。G套件用户发送的电子邮件都使用谷歌。主机名中的com和Microsoft Exchange Online用户发送的电子邮件都使用outlook。主机名中的com。对于其他电子邮件服务提供商,如Mailchimp、SendinBlue、SendPluse等,情况也是如此。它们都为单个服务器使用一个主机名,而一个IP地址只有一个RDN记录。 就这样!我希望本教程能帮助您使用iRedMail托管多个电子邮件域。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:1006
  • 让我们加密免费TLS/SSL证书续订错误

    当我在2015年推出这个网站时,我使用的是一个非常便宜的VPS,每年花费10美元。我从Let's Encrypt获得了一个免费的TLS/SSL证书,并将Nginx配置为服务HTTPS流量。 2016年3月,我将我的网站迁移到了digital Ocean(没有附属链接)SSD云服务器,每月花费5美元(从附属链接获得10美元的免费积分)。为了继续提供HTTPS通信,我还需要将我的TLS/SSL证书传输到新服务器。 Nginx需要两个文件来服务HTTPS流量:一个完整的链证书和您的私钥。在Let's Encrypt中,这两个文件位于 /etc/letsencrypt/live/your-site.com/fullchain.pem /etc/letsencrypt/live/your-site.com/privkey.pem 正确地说,这两个文件是分别指向以下两个文件的符号链接。 /etc/letsencrypt/archive/yoursite.com/fullchain1.pem /etc/letsencrypt/archive/yoursite.com/privkey1.pem 所以我想我只需要把上面两个文件复制到我的Digital Ocean SSD服务器上,我就这么做了。 证书续期问题 您可能知道,让我们对证书加密90天。你必须每三个月更新一次证书。 由于我只有fullchain1,我在续签证书时遇到了困难。pem和privkey1。pem在我的服务器上。与我的Let's encrypt文件相关的所有其他文件都消失了。这两个文件使Nginx能够服务于HTTPS流量,但在您续订证书时,它们是不够的。 我用来更新证书的命令是 sudo letsencrypt renew 但让我们加密客户端并没有尝试更新我的证书。这是因为客户端依赖于续订配置文件来了解如何续订证书,即使用什么插件和什么选项。 因此,我找到了一个示例续订配置文件,并使用下面的命令创建了一个。 sudo nano /etc/letsencrypt/renewal/linuxbabe.com.conf 并在文件中放入以下行。 cert = /etc/letsencrypt/live/linuxbabe.com/cert.pem privkey = /etc/letsencrypt/live/linuxbabe.com/privkey.pem chain = /etc/letsencrypt/live/linuxbabe.com/chain.pem fullchain = /etc/letsencrypt/live/linuxbabe.com/fullchain.pem # Options used in the renewal process [renewalparams] authenticator = webroot installer = None account = 7b3fa88c32887c234036234f6cc6358ab webroot_path = /usr/share/nginx/linuxbabe.com, [[webroot_map]] linuxbabe.com = /usr/share/nginx/linuxbabe.com 上面的配置告诉我们加密客户端使用Webroot插件来更新证书。然后再次运行“续订”命令。我遇到的第一个错误是: renewal configuration file is broken 这是因为两个原因: 我没有证书和锁链。我服务器上的pem文件。 我使用真实的文件,而不是符号链接。 cert.pem是由Let's Encrypt和chain颁发的证书。pem是Let’s Encrypt的中间证书,由根证书颁发机构颁发。这两个文件用于创建完整链。pem文件。您可以发现cert.pem位于链的上方。全链中的pem。pem文件。 所以要获得cert.pem和chain。pem,只需复制fullchain的上半部分。并将其保存到名为cert.pem的文件中。然后复制fullchain的下半部分。并将其保存到名为chain的文件中。佩姆。 现在我有证书了。pem fullchain。佩姆和普里夫基。pem位于/etc/letsencrypt/archive/linuxbabe下。com目录。 然后创建符号链接。 sudo ln -sf /etc/letsencrypt/archive/linuxbabe.com/cert.pem /etc/letsencrypt/live/linuxbabe.com/cert.pem sudo ln -sf /etc/letsencrypt/archive/linuxbabe.com/chain.pem /etc/letsencrypt/live/linuxbabe.com/chain.pem sudo ln -sf /etc/letsencrypt/archive/linuxbabe.com/fullchain.pem /etc/letsencrypt/live/linuxbabe.com/fullchain.pem sudo ln -sf /etc/letsencrypt/archive/linuxbabe.com/privkey.pem /etc/letsencrypt/live/linuxbabe.com/privkey.pem 再次运行证书续订命令。 sudo letsencrypt renew 这一次,我犯了一个错误: max() arg is an empty sequence 上述消息是python中常见的错误消息。但它没有告诉你到底发生了什么。为了解决这个错误,我只需要重命名/etc/letsencrypt/archive/linuxbabe下的四个pem文件。com/。 cd /etc/letsencrypt/archive/linuxbabe.com mv cert.pem cert1.pem mv chain.pem chain1.pem mv fullchain.pem fullchain1.pem mv privkey.pem privekey1.pem 然后再次创建符号链接。现在我可以毫无问题地续签我的证书了。

    2022.03.24 浏览:357