Odoo 邮件发送配置指南:默认、定制域名与多服务器设置
管理外发邮件
使用 Odoo 默认配置发送邮件
在 Odoo Online 和 Odoo.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 邮件服务器的自定义域名
在 Odoo Online 或 Odoo.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>。
使用外部 SMTP 服务器发送邮件
:::: 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_oauthazure_oauth:::
为事务邮件和批量邮件设置不同服务器
个性化邮件服务器
事务邮件(报价、发票等日常邮件)和批量邮件(营销活动)可分别使用不同的邮件服务器。事务邮件使用 事务服务器,批量邮件使用 营销服务器。
::: example 事务邮件可使用 Gmail、Amazon SES、Brevo 等;批量邮件可使用 Mailgun、Sendgrid、Mailjet 等。 :::
在 开发者模式 下,进入 设置 → 技术 → 邮件:外发邮件服务器,分别添加两条记录:一条用于事务邮件,另一条用于批量邮件。为事务服务器设置更低的 优先级(如 1),批量邮件服务器设为 2,系统会优先使用事务服务器发送事务邮件。
随后,进入 邮件营销 → 配置 → 设置,勾选 专用服务器 并选择对应的批量邮件服务器。系统会使用最低优先级的服务器处理事务邮件,使用专用服务器处理批量邮件。
FROM 过滤
:::: important ::: title 重要 :::
强烈建议在外发邮件服务器上按照提供商说明配置 FROM 过滤。 ::::
FROM 过滤 字段允许根据发件人地址或域名选择特定的外发服务器。值必须是域名或完整邮箱地址,并在外发服务器提供商侧得到信任。
若未使用 FROM 过滤,邮件将使用通知地址发送。
:::: warning ::: title 警告 :::
部分外发服务器要求特定的 FROM 过滤配置。 ::::
Odoo 选择外发服务器的顺序如下:
- 查找 FROM 过滤 与邮件中 From 值匹配的服务器(如
test@example.com必须匹配test@example.com或example.com)。 - 若未找到,则使用 未设置 FROM 过滤 的第一台服务器,邮件会被覆盖为通知地址。
- 若仍未找到,则使用列表中的第一台服务器,同样覆盖为通知地址。
:::: note ::: title 注意 :::
服务器的先后顺序由 优先级 决定(值越小优先级越高),若优先级相同则按名称字母顺序排列。 ::::
若系统中没有邮件服务器,Odoo 将使用系统参数 <email-outbound-default-from-filtering> 的值。
也可以在事务邮件中使用 Odoo 默认的邮件服务器,同时保留批量邮件的专用服务器。
同时使用外部邮件服务器和 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,所有外发邮件都会被该地址覆盖。
::::