在Odoo中配置DNS记录以发送电子邮件

垃圾邮件标签概述

有时,Odoo的电子邮件会被不同的电子邮件提供商错误地分类为垃圾邮件并最终进入垃圾邮件文件夹。目前,一些设置不在Odoo的控制范围内,特别是不同的电子邮件提供商根据自己的限制政策和/或限制方式对Odoo的电子邮件进行分类的方式。

在Odoo中,电子邮件通常是从 "作者的名字" <notifications@mycompany.odoo.com> 接收的。换句话说,这可以翻译为: "作者的名字" <{ICP.mail.from.filter}@{mail.catchall.domain}> 。在这种情况下,ICP代表 ir.config.parameters ,它们是系统参数。通过 notifications configuration 可以大大提高可交付性。

为了让服务器更加定期地接受来自Odoo的电子邮件,其中一个解决方案是让客户在自己的邮箱中创建规则。可以向电子邮件收件箱添加过滤器,以便在收到来自Odoo(notifications@mycompany.odoo.com)的电子邮件时将其移动到收件箱。还可以将Odoo数据库域添加到接收域的安全发件人列表或白名单中。

如果Odoo的电子邮件服务器出现在黑名单中,请通过 新的帮助票 <https://www.odoo.com/help> _通知Odoo,支持团队将努力将服务器从黑名单中移除。

如果Odoo数据库使用自定义域名发送电子邮件,则应在自定义域名的DNS上实施三个记录,以确保电子邮件的可传递性。这包括为 SPFDKIMDMARC 设置记录。但最终接收邮箱的决定权归接收邮箱所有。

符合SPF标准

发送者策略框架(SPF)协议允许域名所有者指定哪些服务器允许从该域名发送电子邮件。当服务器接收到一封传入的电子邮件时,它会检查发送服务器的IP地址是否在发送者的SPF(发送者策略框架)记录中允许的IP列表中。

注解

在电子邮件的 Return-Path 字段中,对所提及的域名进行了 SPF 验证。对于由Odoo发送的电子邮件,该域名对应于数据库系统参数中 mail.catchall.domain 键的值。

域名的 SPF 策略是使用 TXT 记录设置的。创建或修改 TXT 记录的方式取决于托管域名的提供商的 DNS 区域。为了使验证正常工作,每个域名只能有一个 SPF 记录。

如果域名尚未有 SPF 记录,请使用以下输入创建一个: v=spf1 include:_spf.odoo.com ~all

如果域名已经有一个 SPF 记录,则必须更新该记录(不要创建新记录)。

Example

如果TXT记录是 v=spf1 include:_spf.google.com ~all ,请编辑它以添加 include:_spf.odoo.comv=spf1 include:_spf.odoo.com include:_spf.google.com ~all

检查 SPF 记录是否有效,可以使用免费工具,例如 MXToolbox SPF

启用 DKIM

DomainKeys Identified Mail(DKIM)允许用户使用数字签名对电子邮件进行身份验证。

发送电子邮件时,Odoo 服务器在标头中包含一个唯一的 DKIM 签名。接收方的服务器使用数据库域名中的 DKIM 记录解密此签名。如果签名和记录中包含的密钥匹配,则可以保证该消息是真实的,并且在传输过程中没有被篡改。

要启用 DKIM,请在域名的 DNS 区域中添加一个 CNAME 记录:

odoo._domainkey IN CNAME odoo._domainkey.odoo.com.

小技巧

如果域名是 mycompany.com,请确保创建一个子域名 odoo._domainkey.mycompany.com,其规范名称为 odoo._domainkey.odoo.com..

创建或修改 CNAME 记录的方式取决于托管域名的 DNS 区域的提供商。最常见的提供商如下所示: 下面列出的

检查 DKIM 记录是否有效,可以使用免费工具 DKIM Core 进行检查。如果要求输入选择器,请输入 odoo

检查 DMARC 策略

基于域的消息认证、报告和合规性(DMARC)记录是一个将SPF(发件人策略框架)和DKIM(域名密钥识别邮件)统一起来的协议。域名的DMARC(基于域的消息认证、报告和合规性)记录中包含的指令告诉目标服务器如何处理未通过SPF(发件人策略框架)和/或DKIM(域名密钥识别邮件)检查的传入电子邮件。

Example

DMARC: TXT记录

v=DMARC1; p=none;

有三个 DMARC 策略:

  • p=none

  • p=quarantine

  • p=reject

p=quarantinep=reject 指示接收电子邮件的服务器将该电子邮件隔离或忽略,如果 SPF 和/或 DKIM 检查失败。

如果域名使用 DMARC 并定义了其中一个策略,则该域名必须符合 SPF 或启用 DKIM

警告

Yahoo或AOL是具有 DMARC(基于域的消息身份验证、报告和一致性) 策略设置为 p=reject 的电子邮件提供商的示例。Odoo强烈建议不要为数据库用户使用 @yahoo.com@aol.com 地址。这些电子邮件将永远无法到达其收件人。

p=none is used for the domain owner to receive reports about entities using their domain. It should not impact the deliverability if the DMARC check fails.

DMARC records are comprised of tags in the form of DNS records. These tags/parameters allow for reporting, such as RUA and RUF, along with more precise specification like PCT, P, SP ADKIM & ASPF. For best practice, the the DMARC policy should not start out being too restrictive.

下面的图表显示可用的标签:

标签名称

目的

示例

v

协议版本

v=DMARC1

百分比

过滤邮件的百分比

pct=20

ruf

用于取证报告的报告 URI

ruf=mailto:authfail@example.com

rua

聚合报告的报告 URI

rua=mailto:aggrep@example.com

p

组织域名的策略

p=quarantine

sp

OD子域名的策略

sp=reject

adkim

DKIM 的对齐模式

adkim=s

aspf

SPF 的对齐模式

aspf=r

使用类似 MXToolbox DMARC 的工具检查域名的 DMARC 记录。

常见提供商的SPF、DKIM和DMARC文档

要完全测试配置,请使用 Mail-Tester 工具,该工具可以在一封发送的电子邮件中提供内容和配置的完整概述。Mail-Tester 还可以用于配置其他较少知名的提供商的记录。