为 Google Apps 脚本配置 SPF/DKIM/DMARC

问题描述 投票:0回答:1

我有一个附加到电子表格的 Google Apps 脚本,它使用 MailApp.SendMail()。

   MailApp.sendEmail(recipient, subject, body, {
     noReply: true,
     htmlBody: htmlBody,
     name: emailFromName,
     replyTo: replyToEmailAddress,
     cc: ccEmailAddress
     });

我从我自己的域myowndomain.com下的帐户运行此程序我使用gmail来管理来自此域的电子邮件。

我配置了 SPF 和 DKIM,它们可以正常工作。我的 DMARC 当前设置为隔离,但我想将其移至拒绝。

如果我从我的个人发件箱发送邮件,无论是通过 gmail 还是通过 IMAP 的其他邮件客户端,一切都很好。 SPF、DKIM 和 DMARC 均通过。

但是,从脚本发送的任何邮件都会通过 SPF,但无法通过 DMARC。我不认为 DKIM 被触发。据我所知,这是因为 SPF 检查来自 google 的域,而 DMARC 来自 myowndomain.com

Received-SPF: pass (google.com: domain of [email protected] designates xxx.xxx.xxx.xxx as permitted sender)

dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=QUARANTINE) header.from=myowndomain.com

我必须相信其他人已经这样做了并且有解决方案。

有没有办法配置脚本或我的 DMARC/DKIM/SPF 记录,以便它们通过并且我的脚本生成的邮件不会最终成为垃圾邮件?

google-apps-script spf dkim dmarc
1个回答
0
投票

在不知道您的 DKIM 设置的情况下很难回答,但从这些信息来看,您的 SPF 设置似乎工作正常,而 DKIM 检查失败。当您已经设置了 DKIM 时,您需要两者才能使 DMARC 拒绝策略发挥作用。

DKIM 依赖于发送电子邮件服务器需要访问的密钥对(一个公钥和一个私钥)。公钥很容易,因为它可以从您的 DNS 获得。不过私钥很棘手。

虽然您的发送电子邮件服务(Gmail 和 Google Apps)均由同一家公司(即 Google)提供,但您需要将它们视为完全独立的电子邮件服务,因为据我所知,Google 不共享私有 DKIM他们的这些不同电子邮件服务之间的密钥。

这意味着您需要从 Gmail 设置中获取 DKIM 私钥,并将其输入到 Google Apps 设置中,以便您的域可供在 Google Apps 中运行的脚本使用。

如果这是不可能的(因为 Google 可能不提供由 Gmail 生成的私有 DKIM 密钥),您需要生成自己的 DKIM 密钥对并将其输入 Gmail 和 Google Apps 中,以用作唯一的一组 DKIM您的域的密钥。

© www.soinside.com 2019 - 2024. All rights reserved.