在我的设置中,我有一个托管在 Heroku 上的网站 (example.app)。
然后,我使用 Sendgrid 从 Heroku 服务器向忘记密码的用户发送电子邮件。该电子邮件是使用 Google 的 Gsuite 注册的。所以我也从 Google 服务器发送电子邮件。
发件人电子邮件是:<Appname <[email protected] /cdn-cgi/l/email-protection>
所以我认为这些应该是我的 DNS 记录(注意我没有 A 记录):
CNAMES:
example.app CNAME "example.app.herokudns.com"
www.example.app CNAME "www.example.app.herokudns.com"
SPF:
example.app TXT "v=spf1 a include:_spf.google.com include:sendgrid.net ~all"
Dmarc:
_dmarc TXT v=DMARC1; p=none; rua=mailto:[email protected] /cdn-cgi/l/email-protection; ruf=mailto:[email protected] /cdn-cgi/l/email-protection; fo=0; adkim=r; aspf=r; rf=afrf; pct=100; ri=86400; sp=none
但是,Dmarc 记录不会验证,因为邮件是从与“收件人”地址不同的域发送的。我认为电子邮件是从 sendgrid.com 发送的,收件人地址是 example.app。
因此,我认为通过将 Heroku DNS 的 IP 地址添加到 SPF 记录中应该可以工作。
但是,当这些 IP 地址是动态的时,我该如何做到这一点呢?