我正在寻找一种在本地开发应用程序时测试某些电子邮件发送功能的方法,即在http://localhost:[some-port]
我正在使用Mailchimp的 Mandrill和 Node.js 上的官方Mandrill API 模块。
Mandrill 需要为发送域设置一些 DKIM/SPF 设置,我不确定如何将 my 设置localhost
为发送域。
从他们的文档中:
您需要添加 SPF 和 DKIM 记录并验证您的发送域的所有权,然后才能通过您的帐户发送电子邮件。Mandrill 不会从未经验证的域或没有有效 SPF 和 DKIM 记录的域发送任何电子邮件,包括 gmail.com、yahoo.com 等公共域。
所以基本上 Mandrill 需要为每个域设置发送域和DKIM/SPF设置
我已经成功设置了我的主域和实时 ( www.something.com
) 域的设置,但现在我还想设置localhost
,以便在进行本地开发时进行测试
未设置localhost
为发送域,导致“拒绝/未签名”错误
当然,如果我没有设置localhost
为发送域,任何发送消息的尝试都会导致此错误:
[ { email: '[email protected]',
status: 'rejected',
_id: 'bdbd8317b1a14986852b93e12a24246e',
reject_reason: 'unsigned' } ]
设置localhost
为发送域
有没有设置localhost
为 发送域的实际方法?
注意:我已经在使用测试 API 密钥进行测试
DKIM/SPF 查找
您应该将电子邮件作为公共 DNS 中的有效域发送。这允许 DKIM 和 SPF 查找按预期运行。您可以使用与生产/直播相同的域,但您可能希望像 dev.something.com 这样的子域作为发送域。这将需要它自己的 SPF/DKIM DNS 条目。
域名所有权
大多数收件人域不会接受来自未经身份验证/未经验证的来源的电子邮件。所以是的,您需要拥有一个域。从 EasyDNS 等获得免费域就足够了。您不一定需要二级域。您确实需要能够在区域上添加 TXT 记录和 CNAME,以便通过接收电子邮件服务器进行公共查找。