管理外发邮件

Odoo OnlineOdoo.sh 上,发送和接收邮件开箱即用,无需任何配置

当创建数据库时,会使用子域名
[company-name.odoo.com] 来发送和接收邮件。该子域名的可达性已针对 Odoo 的 DNS 配置进行优化。

::: example 如果数据库子域名是 [company-name.odoo.com],且所有邮件配置均为默认,则所有邮件将从 [notifications@company-name.odoo.com] 发送。 :::

::: {#email-outbound-default-from-filtering} 该配置由系统参数 mail.default.from_filter 处理。如果发件人的域名与该参数的值不匹配,则使用通知地址。该系统参数可以定义多个值:采用逗号分隔,支持域名或完整邮箱地址。一旦 配置了外发邮件服务器 <email-outbound-different-servers-personalized>,系统参数将不再生效,使用的是邮件服务器的 FROM 过滤 <email-outbound-different-servers-personalized-from-filtering>。 :::

邮件的 reply‑to 地址为 [catchall@company-name.odoo.com]。此外,投递错误会发送至 [bounce@company-name.odoo.com]

:::: note ::: title 注意 :::

catchall、bounce 与 notification 地址的作用不同于普通别名,它们不会在数据库中创建记录。发送到别名的邮件会自动路由,回复已有记录或创建新记录。 ::::

可以将数据库配置为使用自定义域名,此时所有默认邮箱地址均基于该自定义域名构建。若自定义域名为 [company-name.com],则:

  • 发件人地址为 [notifications@company-name.com]
  • reply‑to 地址为 [catchall@company-name.com]
  • bounce 地址为 [bounce@company-name.com]

自定义域名可在使用 Odoo 邮件服务器或外部服务器时使用。

本节假设您已拥有自定义域名。如果没有,需要从 GoDaddy、Namecheap 或其他域名注册商处购买。

::: seealso Magic Sheet - Email domain name configuration [PDF] :::

Odoo OnlineOdoo.sh 上,需要在自定义域名的 DNS 中完成一些必需配置,以确保良好的可达性。

:::: warning ::: title 警告 :::

大部分配置在域名提供商侧完成,可能还需要在邮件服务器上进行设置。需要一定的技术知识。 ::::

第一步是配置符合 Odoo 邮件服务器要求的 SPF <email-domain-spf>DKIM <email-domain-dkim>

随后,将自定义域名设置为公司的 别名域。在 设置 中选择公司,打开 别名域 字段并填入自定义域名。

添加别名域后,点击 oi-arrow-right(内部链接)图标,可为需要的其他公司分配同一别名域。开启 开发者模式 可自行修改默认别名:

  • Bounce Alias:用于捕获投递错误并在对应消息上显示 红信封 <email-issues-outgoing-delivery-failure>
  • Catchall Alias:用于集中所有回复的默认邮箱。
  • Default From Alias:默认发件人地址。

:::: note ::: title 注意 :::

创建第一个别名域后,所有公司默认使用该域名。若后续新建公司,系统会自动选取优先级最低(在 开发者模式 的别名域列表中显示)的域名。 ::::

所有邮件别名(如 CRM、Helpdesk 团队)必须在自定义域名的邮件服务器上拥有对应的邮箱。

要在 Odoo 数据库的聊天窗口(CRM、发票、销售订单等)中接收邮件,需要使用以下三种方法之一:

  • 重定向/转发
  • 入站邮件服务器
  • MX 记录 (需要高级技术知识)

使用自定义域名时,Odoo 发送邮件可能会使用特定的 本地部分 <email-outbound-custom-domain-smtp-server-local-part>

:::: note ::: title 注意 :::

若使用自有的外发邮件服务器,必须配合自有域名使用,因为无法修改 Odoo 子域名的 DNS。 ::::

在 Odoo 中添加外部 SMTP 服务器,路径为 设置 → 邮件 → 使用自定义邮件服务器(在 邮件 部分),勾选后保存。

返回 邮件 页面,点击 外发邮件服务器新建,填写 SMTP 服务器的常规参数(主机、端口、用户名、密码等),使用邮件提供商提供的值。

完成后点击 测试连接。请注意,测试成功并不保证邮件一定能够发送,因为提供商可能仍有限制,建议查阅提供商文档。

以下是 Odoo 发送邮件时可能使用的本地部分值,需在邮件服务器上进行白名单配置:

  • 别名域的 Bounce Alias(默认值 bounce
  • 别名域的 Default From(默认值 notifications
  • 默认管理员地址 admin@company-name.odoo.com(或修改后的新值)
  • 默认 Odoobot 地址 odoobot@company-name.odoo.com(或修改后的新值)
  • 邮件营销活动中定义的特定 FROM
  • 邮件模板中定义的特定 FROM

::: seealso

  • google_oauth
  • azure_oauth :::

事务邮件(报价、发票等日常邮件)和批量邮件(营销活动)可分别使用不同的邮件服务器。事务邮件使用 事务服务器,批量邮件使用 营销服务器

::: example 事务邮件可使用 Gmail、Amazon SES、Brevo 等;批量邮件可使用 Mailgun、Sendgrid、Mailjet 等。 :::

开发者模式 下,进入 设置 → 技术 → 邮件:外发邮件服务器,分别添加两条记录:一条用于事务邮件,另一条用于批量邮件。为事务服务器设置更低的 优先级(如 1),批量邮件服务器设为 2,系统会优先使用事务服务器发送事务邮件。

随后,进入 邮件营销 → 配置 → 设置,勾选 专用服务器 并选择对应的批量邮件服务器。系统会使用最低优先级的服务器处理事务邮件,使用专用服务器处理批量邮件。

:::: important ::: title 重要 :::

强烈建议在外发邮件服务器上按照提供商说明配置 FROM 过滤。 ::::

FROM 过滤 字段允许根据发件人地址或域名选择特定的外发服务器。值必须是域名或完整邮箱地址,并在外发服务器提供商侧得到信任。

若未使用 FROM 过滤,邮件将使用通知地址发送。

:::: warning ::: title 警告 :::

部分外发服务器要求特定的 FROM 过滤配置。 ::::

Odoo 选择外发服务器的顺序如下:

  1. 查找 FROM 过滤 与邮件中 From 值匹配的服务器(如 test@example.com 必须匹配 test@example.comexample.com)。
  2. 若未找到,则使用 未设置 FROM 过滤 的第一台服务器,邮件会被覆盖为通知地址。
  3. 若仍未找到,则使用列表中的第一台服务器,同样覆盖为通知地址。

:::: note ::: title 注意 :::

服务器的先后顺序由 优先级 决定(值越小优先级越高),若优先级相同则按名称字母顺序排列。 ::::

若系统中没有邮件服务器,Odoo 将使用系统参数 <email-outbound-default-from-filtering> 的值。

也可以在事务邮件中使用 Odoo 默认的邮件服务器,同时保留批量邮件的专用服务器。

在 Odoo Online 与 Odoo.sh 上,默认使用 Odoo 的 SMTP 服务器。若未配置任何外发服务器,则使用默认的 Odoo SMTP。

::: example 若同时使用外部外发服务器和 Odoo 默认服务器(CLI),则外部服务器的 FROM 过滤必须包含自定义域名,CLI 的 FROM 过滤必须包含 Odoo 子域名。若未配置 FROM 过滤,邮件将使用通知地址发送。 :::

:::: note ::: title 注意 :::

在 Odoo Online 上,CLI 与默认 Odoo 邮件服务器等价,使用相同的每日发送限制。 ::::

:::: tip ::: title 提示 :::

Odoo Online 页面会显示每日邮件使用量和限制;在 Odoo.sh 上,需要在监控页面查看已发送的外发邮件数量。 ::::

:::: note ::: title 注意 :::

在 Odoo.sh 上,要使用 CLI,需要在配置文件中设置外发邮件服务器。 ::::

:::: warning ::: title 警告 :::

Odoo 的邮件服务器仅适用于事务邮件和小规模营销活动。每日发送上限 取决于数据库类型和所使用的应用。 ::::

与前述章节类似,若使用外部邮件服务器发送自定义域名的邮件,需要确保该服务器已获准使用该域名。请参考提供商文档,正确配置 SPF、DKIM 与 DMARC 记录。常见提供商文档列表可查阅 <email-domain-providers-documentation>

:::: note ::: title 注意 :::

使用自有域名时必须进行 DNS 配置。如果使用外部外发服务器,按照 Odoo DNS 配置文档 <email_domain> 中的记录进行配置 不会生效,因为此时 DNS 与 Odoo 无关。Odoo 不允许配置其子域名。 ::::

出于安全考虑,Odoo Online 与 Odoo.sh 屏蔽了端口 25。请改用 465、587 或 2525 端口。

catchall 域名是公司专属的。默认情况下,所有公司共享 Odoo 子域名(如 [company-name.odoo.com]),但每家公司也可以拥有自己的自定义邮件域名。

开启 开发者模式 后,可在 设置 → 技术 → 邮件:别名域 中管理别名域选项。

:::: warning ::: title 警告 :::

修改别名域需格外谨慎。若更改了别名(bounce、catchall、default from),之前未正确重定向到新别名的邮件将会丢失。 ::::

Default From Alias 字段可以填写邮箱的本地部分(默认 [notifications])或完整邮箱地址。该字段决定邮件的 FROM 头。如果使用完整邮箱地址,所有外发邮件都会被该地址覆盖。

当从聊天窗口发送邮件时,客户可以直接回复。客户的直接回复会记录在同一聊天记录中,形成与该记录关联的消息线程。

收到回复后,Odoo 会根据已订阅的关注者(基于关注子类型)通过邮件或 Odoo 收件箱发送通知,具体取决于用户的偏好设置。

::: example 若客户 Mary(mary@customer.example.com)直接回复 Odoo 发送的邮件,Odoo 默认会将邮件内容分发给线程中的其他关注者。由于 Mary’s 域不属于别名域,Odoo 会使用通知邮箱地址发送通知。默认情况下,Odoo Online 与 Odoo.sh 的 FROM 地址会被覆盖为 notifications@company-name.odoo.com,而非 mary@customer.example.com

该地址的构成形式为:{发件人名称}[{别名域, 默认 from 别名}]@{别名域, 域名},默认即 notifications@company-name.odoo.com。 :::

若想强制所有邮件使用同一发件地址,开启 开发者模式,进入 设置 → 技术 → 邮件:别名域,在 Default From Alias 中填写本地部分或完整邮箱地址。

:::: warning ::: title 警告 :::

如果 填写完整地址 作为 Default From Alias所有外发邮件都会被该地址覆盖。 ::::