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

垃圾邮件标签概览

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

根据 Odoo 的标准,电子邮件是从 "name of the author" <notifications@mycompany.odoo.com> 接收的。可以翻译成:"作者姓名" <{ICP.mail.from.filter}@{mail.catchall.domain}>. 在这种情况下,ICP 代表 “ir.config.parameters”,即系统参数。使用 通知配置,可大大提高发送能力。

为了让服务器更经常地接受来自 Odoo 的电子邮件,解决方案之一是让客户在自己的邮箱中创建规则。可以在电子邮件收件箱中添加过滤器,这样当收到来自 Odoo 的电子邮件时(”notifications@mycompany.odoo.com”),它就会被移到收件箱中。还可以将 Odoo 数据库域添加到安全发件人列表或接收域的白名单中。

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

如果 Odoo 数据库使用自定义域名从 Odoo 发送电子邮件,则应在自定义域名的 DNS 上实施三项记录,以确保电子邮件可送达。这包括为:abbr:SPF(发件人策略框架)、: abbr:`DKIM(域键识别邮件)`和: abbr:`DMARC(基于域的消息验证、报告和一致性)`设置记录。不过,最终接收邮箱的处理方式由其自行决定。

符合 SPF 标准

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

注解

:abbr:`SPF(发件人策略框架)`验证在电子邮件的`返回路径`字段中提到的域上执行。在由 Odoo 发送电子邮件的情况下,该域与数据库系统参数中的`mail.catchall.domain`键值相对应。

域名的 SPF(发件人策略框架)`策略通过 TXT 记录设置。创建或修改 TXT 记录的方法取决于托管域名的 :abbr:`DNS(域名系统) 区域的提供商。为了验证正常,每个域名只能有一个:abbr:SPF(发件人策略框架) 记录。

如果域名还没有:abbr:SPF(发件人策略框架) 记录,请使用以下输入进行创建: v=spf1 include:_spf.odoo.com ~all`.

如果域名已有:abbr:SPF(发件人策略框架) 记录,则必须更新该记录(不要创建新记录)。

Example

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

使用 MXToolbox SPF 等免费工具检查:abbr:SPF(发件人策略框架) 记录是否有效。

启用DKIM

域名密钥识别邮件(DKIM)允许用户使用数字签名对电子邮件进行身份验证。

发送电子邮件时,Odoo 服务器会在标题中包含一个唯一的 DKIM(域名密钥识别邮件) 签名。收件人的服务器使用数据库域名中的:abbr:DKIM(域名密钥识别邮件) 记录解密该签名。如果签名和记录中包含的密钥相匹配,就能保证邮件是真实的,在传输过程中没有被篡改。

要启用:abbr:DKIM(域名密钥识别邮件),请在域名的 DNS(域名系统) 区域添加一条 CNAME(规范名称) 记录:

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

小技巧

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

创建或修改:abbr:CNAME(规范名称) 记录的方法取决于托管域名的 DNS(域名系统) 区域的提供商。最常见的提供商是 下面列出的

使用:abbr:DKIM 核心<https://dkimcore.org/tools/>`_等免费工具检查 :abbr:`DKIM(域名密钥识别邮件) 记录是否有效。如果询问选择器,请输入`odoo`。

查看 DMARC 政策

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

Example

DMARC:TXT 记录

v=DMARC1; p=none;

有三种:abbr:`DMARC(基于域的消息验证、报告和一致性)`策略:

  • p=none

  • p=quarantine

  • p=reject

p=隔离 `p=拒绝 指示接收电子邮件的服务器隔离该电子邮件,或者如果 :abbr:`SPF(发件人策略框架)和/或 DKIM(域名密钥识别邮件)`检查失败,则忽略该邮件。

如果域名使用 : abbr:DMARC(基于域的消息验证、报告和一致性)`并定义了这些策略之一,则域名必须符合 :abbr:`SPF(发件人策略框架)`或启用:abbr:`DKIM(域密钥识别邮件)

警告

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

p=none 用于域所有者接收关于使用其域的实体的报告。如果:abbr:DMARC(基于域的消息身份验证、报告和一致性) 检查失败,则不应影响送达率。

DMARC(基于域的消息身份验证、报告和一致性) 记录由:abbr:DNS(域名系统) 记录形式的标签组成。这些标签/参数可用于报告,如:abbr:RUA (汇总报告的报告 URI)"和:abbr:`RUF (取证报告的报告 URI),以及更精确的规范,如:abbr:PCT(被过滤邮件百分比)P(组织域策略)SP(OD 子域策略)、:abbr:`ADKIM(DKIM 对齐模式)和:abbr:`ASPF(SPF 对齐模式)。为获得最佳实践,:abbr:`DMARC(基于域的消息验证、报告和一致性)`策略一开始不应限制性过强。

下图显示了可用的标签:

标签名称

目的

示例

v

协议版本

v=DMARC1

pct

被过滤信息的百分比

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 <https://mxtoolbox.com/DMARC.aspx>`_等工具检查域名的 :abbr:`DMARC (基于域的消息身份验证、报告和一致性)`记录。

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

要全面测试配置,请使用 `Mail-Tester <https://www.mail-tester.com/>`_工具,该工具可在一封电子邮件中提供内容和配置的完整概览。Mail-Tester 还可用于为其他不太知名的提供商配置记录。