如何通过 gmail smtp 使用 exim4 发送邮件:如何在没有域的情况下启用 SPF 或 DKIM?

如何通过 gmail smtp 使用 exim4 发送邮件:如何在没有域的情况下启用 SPF 或 DKIM?

我想从我的 Debian 盒子发送邮件到我的个人 Gmail 帐户。

当我尝试发送电子邮件时,我收到来自 Google 的错误。这是我可以读到的内容/var/log/exim4/mainlog

2023-04-13 21:31:41 1pn2fV-0032Fu-IA <= [email protected] U=roberto P=local S=409
2023-04-13 21:31:41 1pn2fV-0032Fu-IA H=gmail-smtp-in.l.google.com [2a00:1450:4013:c03::1a] Network is unreachable
2023-04-13 21:31:42 1pn2fV-0032Fu-IA ** [email protected] R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [108.177.126.27] X=TLS1.3:ECDHE_X25519__ECDSA_SECP256R1_SHA256__AES_256_GCM:256 CV=yes DN="CN=mx.google.com": SMTP error from remote mail server after pipelined end of data: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the\n550-5.7.26 sender and Gmail users, and has been blocked. The sender must\n550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,\n550-5.7.26 DKIM checks did not pass and SPF check for [pioneer.zar.it] did not\n550-5.7.26 pass with ip: [79.20.203.164]. The sender should visit\n550-5.7.26  https://support.google.com/mail/answer/81126#authentication for\n550 5.7.26 instructions on setting up authentication. p5-20020aa7d305000000b005066ca2f63fsi2195148edq.197 - gsmtp
2023-04-13 21:31:42 1pn2fW-0032Fy-P6 <= <> R=1pn2fV-0032Fu-IA U=Debian-exim P=local S=2980
2023-04-13 21:31:42 1pn2fV-0032Fu-IA Completed
2023-04-13 21:31:42 1pn2fW-0032Fy-P6 => roberto <[email protected]> R=local_user T=mail_spool
2023-04-13 21:31:42 1pn2fW-0032Fy-P6 Completed

“pioneer.zar.it” 域名是本地未注册域名。如果该域名不存在,我该如何设置 SPF 或 DKIM?

我的操作系统是 Debian 11,我的update-exim4.conf.conf是:

dc_eximconfig_configtype='internet'
dc_other_hostnames='pioneer.zar.it'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

[编辑] 感谢@user1686,我找到了一个解决方案:我的系统正在将邮件作为智能主机,所以我将第一行改为update-exim4.conf.conf如下:

dc_eximconfig_configtype='smarthost'

此外,我并不拥有该zar.it域名(我使用它是因为我认为它没有被注册),所以我将第二行更改为如下:

dc_other_hostnames=''

现在我可以发送电子邮件了。

答案1

“pioneer.zar.it” 域名是本地未注册域名。如果该域名不存在,我该如何设置 SPF 或 DKIM?

“zar.it”既不是本地域名,也不是未注册域名。事实上,它自 2000 年起就已注册。甚至具体子域名“pioneer.zar.it”也存在于公共 DNS 中,并且有一条 A 记录。

  • 如果您是域名所有者zar.it,则可以像添加其他记录一样向其中添加 SPF(TXT)记录,即使没有相应的 A/AAAA 记录。

    已注册域名的子域名无需额外注册,例如pioneer.zar.it如果您已经拥有该zar.it域名 - 拥有该域名即自动授予其所有子域名的所有权;整个层次结构都委托给您的名称服务器。

  • 如果你说你正在尝试发送邮件别人的域名在“发件人:”中,那么拒绝消息是完全可以预料到的——这意味着SPF 正确履行职责阻止您发送欺骗性消息。请使用其他域名。

    与上一点一样,拥有某个域名的所有权会自动授予其所有子域名的所有权,因此如果其他人已经拥有该域名zar.it,那么他们拥有pioneer.zar.it并设置其 SPF/DMARC 策略。


除此之外,由于您已将服务器配置为使用 Gmail 作为“智能主机”,通过“经过身份验证的邮件提交”端口 465/587(而不是通常的“服务器到服务器邮件交换”端口 25)发送邮件,这意味着 Gmail 不会将您的邮件视为来自外部网站的邮件 - 它们被视为邮件通过您的 Gmail 帐户回到你自己。

我相信 Gmail 的政策可能不允许此类消息,无论 SPF 还是 DKIM - 只要您从特定的 Gmail 帐户发送,您都可能需要使用该帐户作为“发件人:”地址。

相关内容