如何在Debian中使用Mailjet设置Postfix SMTP中继

本教程显示了如何在Debian上使用Mailjet设置Postfix SMTP中继。 Postfix是一种流行的开源SMTP服务器。早些时候,我写了一篇有关如何使用Modoboa快速在Debian中设置自己的电子邮件服务器的文章。这有助于许多读者运行自己的电子邮件服务器。

但是,一些读者说无法发送电子邮件,因为主机提供商或ISP阻止了端口25,以此作为控制电子邮件垃圾邮件的方法。一旦端口25从Vultr解除阻止,建议将Vultr作为主机提供商。其他托管提供商和ISP(例如DigitalOcean)将不会取消阻止端口25。因此,如果您不能更改或不希望更改托管服务提供商,那么如何避免此障碍?

SMTP中继进行救援

因为使用的是端口587,所以可以使用SMTP中继绕过端口25并向外部发送邮件。使用SMTP中继,您自己的邮件服务器不会将邮件直接发送到目标邮件地址。而是有一个中间邮件服务器,也称为智能主机或中继主机,它代表用户发送邮件。邮件服务器在端口587上与智能主机进行通信,而智能主机在端口25上与收件人的邮件服务器进行通信。

如果IP地址由于任何原因被列入黑名单,则SMTP中继还可以帮助防止反垃圾邮件黑名单。收件人的邮件服务器对照公共主机的反垃圾邮件黑名单而不是服务器的IP地址来检查智能主机的IP地址。 SMTP中继服务保持良好的IP信誉,因此邮件可以通过IP黑名单。

使用Mailjet每天免费发送200封电子邮件

有几个可以充当智能主机的电子邮件服务提供商(ESP)。有些人收取少量费用,而其他人则每月提供免费配额。本文介绍如何使用Mailjet。 Mailjet是电子邮件服务提供商,每天可以免费发送200封电子邮件。

Mailjet的优点在于,使用免费的SMTP中继服务时,您无需输入信用卡详细信息。还有其他ESP每月提供免费配额,但是您需要输入信用卡详细信息。 (我知道如果没有信用卡,那会很令人沮丧。)Mailjet的设置比其他ESP更容易。

在mailjet.com上创建一个帐户。接下来,在仪表板上,您可以看到所需的三件事。

  • SMTP设定
  • 发件人地址管理
  • 域身份验证设置(SPF和DKIM)

第1步:在Debian中设置Postfix SMTP中继

首先,使用以下命令在Debian上安装Postfix SMTP服务器: 如果Postfix已在服务器上运行,则跳过Postfix安装但是您仍然需要安装 libsasl2-modules 包装。

sudo apt install postfix libsasl2-modules

出现以下消息时,按Tab键,然后按Enter。

debian-postfix-relayhost认证

然后选择第二个选项。 Internet Site

debian-postfix-relayhost配置

接下来,设置系统邮件名称。例如,输入域名 linuxbabe.com

postfix-smarthost-debian

安装Postfix后,打开配置文件。

sudo nano /etc/postfix/main.cf

找到以下行:

relayhost =

默认情况下,未设置该值。您需要从您的mailjet帐户获取此值。在mailjet仪表板中,单击 setup my SMTP

在mailjet中设置postfix smtp中继

显示SMTP服务器地址和SMTP凭据。

后旁路端口25

在Postfix配置文件中设置以下值: relayhostin-v3.mailjet.com:587

relayhost = in-v3.mailjet.com:587

然后将以下行添加到此文件的末尾:

# outbound relay configurations
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
header_size_limit = 4096000

保存并关闭文件。下一步创建 /etc/postfix/sasl_passwd 文件

sudo nano /etc/postfix/sasl_passwd

将SMTP中继主机和SMTP凭据添加到此文件,如下所示:交换 api-keysecret-key 使用实际的Mailjet API密钥和秘密密钥。

in-v3.mailjet.com:587  api-key:secret-key

保存并关闭文件。然后创建相应的哈希数据库文件 postmap

sudo postmap /etc/postfix/sasl_passwd

现在您应该拥有该文件 /etc/postfix/sasl_passwd.db。重新启动Postfix,以使更改生效。

sudo systemctl restart postfix

默认情况下, sasl_passwdsasl_passwd.db 服务器上的任何用户都可以读取该文件。将权限更改为600,以便只有root才能读取和写入这两个文件。

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

从现在开始,Postfix将通过mailjet发送邮件。

步骤2:添加发件人地址

要通过mailjet发送电子邮件,您需要添加发件人域或发件人地址。在mailjet仪表板中,单击 manage sender addresses。您可以验证整个域或特定的电子邮件地址。

验证发件人域或发件人地址

步骤3:设定网域验证

此过程要求您设置SPF和DKIM记录。强烈建议将其存储在收件人的收件箱中而不是垃圾邮件文件夹中。

  • SPF:发件人政策框架。这是一条DNS记录,它指定可以从域发送邮件的IP地址。
  • DKIM:DomainKeys标识的邮件。 Mailjet使用私钥对电子邮件进行数字签名。 DKIM记录包含一个公用密钥,该公用密钥使收件人的邮件服务器可以验证签名。

在mailjet仪表板中,单击 setup domain authentication。默认情况下,SPF状态和DKIM状态均存在错误。请点击 manage 单击按钮,然后按照说明添加SPF和DKIM记录。

smtp中继配置SPF和DKIM

创建SPF和DKIM记录后,请稍等片刻,然后刷新mailjet网页。根据DNS托管服务的不同,可能需要一些时间才能在Internet上反映新的DNS记录。如果正确设置了SPF和DKIM记录并且传播完成,mailjet将通知您SPF和DKIM记录正确。

mailjet spf dkim

发送测试电子邮件

您现在可以发送测试电子邮件 mailx 像这样的命令:

sudo apt install bsd-mailx

echo "this is a test email." | mailx -r from-address -s hello to-address

您还可以从Webmail客户端或桌面电子邮件客户端发送测试电子邮件。我们还建议您在https://www.mail-tester.com上测试电子邮件分数。如您所见,我得到了满分。

垃圾邮件测试结果

总结

就是这样!我希望本教程将帮助您在Debian中配置Postfix SMTP中继以绕过端口25或IP黑名单。与往常一样,如果您发现此帖子有用,请订阅免费的新闻快讯以获取提示和技巧。保重