管理入站邮件

入站消息是指发送到 Odoo 数据库的电子邮件。任何人都可以向在数据库中创建的电子邮件别名发送电子邮件,或者根据 回复至 标头回复之前从数据库发送的电子邮件。

电子邮件别名

模型特定别名

某些应用有其特定的别名(销售团队、帮助台团队、项目等)。这些别名用于:

  • 当电子邮件直接发送到别名时创建记录,

  • 接收最初从记录发送的电子邮件的回复。

Example

本地部分 "info" 用于销售团队的别名。

在上面的示例中,发送电子邮件到 info@company-name.odoo.com 将自动创建一个新的商机或线索,并分配给相应的销售团队。如果从现有商机的讨论中发送电子邮件,回复至 将是 info@company-name.odoo.com。根据 message-id 头信息,回复将发布在正确的讨论中。

预设

如果应用程序没有别名,则使用通用备用别名:catchall。从 chatter 发送的电子邮件会将回复地址设置为该 catchall 别名。发送到 catchall 的回复会通过 message-id 标头发布到正确的 chatter。

默认情况下,将使用本地部分 catchall。启用 开发者模式 并前往 设置 ‣ 技术 ‣ 电子邮件:别名域 以访问配置。

发送到 catchall 的邮件必须是对数据库中已发送邮件的回复。如果直接向 catchall 发送邮件,发件人将收到以下消息:

来自 "MAILER-DEAMON" 的退信邮件,解释了如何联系数据库。

注解

上图中显示的电子邮件地址 info@company-name.com 是公司在系统中设置的地址。进入公司档案的开发者模式后,额外的配置选项(如 catchall 和 bounce)将变为可读。可以通过点击电子邮件域的内部链接来修改这些选项。通常不建议修改这些选项,除非有特定需求,因为这会影响所有对之前发送邮件的回复。

Example

可以在 CRM 应用中的销售团队上配置一个别名。当客户回复来自 CRM 应用的邮件时,回复至 地址为 info@company-name.odoo.com

当从联系人应用发送电子邮件时,回复地址为 catchall@company-name.odoo.com ,因为联系人模型上没有别名。

注解

建议保持 catchall 和 bounce 的 local-part 不变。如果修改此值,从数据库发送的先前电子邮件仍将具有先前的 local-part 值。这可能导致回复无法正确接收到数据库中。

退回

与 catchall 别名用于构建回复地址的方式相同,bounce 别名用于构建邮件的 return-path 。当邮件无法送达收件人且错误返回给发件人时,会使用 return-path

默认情况下,将使用名称 bounce。启用 开发者模式(调试模式) 并前往 设置 ‣ 技术 ‣ 电子邮件:别名域 以访问配置。

注解

在 Odoo Online 上,使用默认的发送邮件服务器时,无论设置的退回别名为何值,返回路径地址都会被强制设置为 bounce@company-name.odoo.com

当发生错误时,会收到通知并在 chatter 中以红色信封显示。在某些情况下,红色信封可能仅包含一条 no error 消息,这意味着存在 Odoo 无法处理的错误。

通知也会显示在导航栏的 Discuss 图标中。

发送给联系人的电子邮件出现问题,错误在导航栏上报告。

Example

如果收件人的电子邮件地址不正确,通过点击 chatter 中的红色信封,将会显示包含失败原因的错误信息。

发送到错误域名的电子邮件会生成一个显示为红色信封的退信。

使用 Odoo 的默认配置接收邮件

Odoo OnlineOdoo.sh 上,电子邮件别名、回复和退回地址是预先配置好的。这些地址使用自动添加到标准数据库中的别名域。

Example

假设数据库的URL是 https://mydatabase.odoo.com,别名域 mydatabase.odoo.com 会自动创建。Catchall和bounce功能可以使用,它们的地址分别为 catchall@mydatabase.odoo.combounce@mydatabase.odoo.com

如果安装了CRM应用,并且创建了一个别名为 info 的销售团队,那么 info@mydatabase.odoo.com 地址可以立即使用。同样适用于在其他应用中创建的任何其他别名。

数据库域名已准备就绪,无需任何额外配置即可接收电子邮件。

使用多个 Odoo 子域名

Odoo Online 上,唯一的 Odoo 子域是在数据库创建时定义的那个。

Odoo.sh 上,可以使用多个 Odoo 子域名。在分支的设置中,只要这些子域名尚未在其他分支中使用,就可以添加额外的 Odoo 子域名。然后,这些域名必须被添加到公司使用的别名域名中。

在分支上设置 Odoo 子域名。

为接收消息使用自定义域名

必须在常规设置中选择 别名域 。如果您有多个公司,则必须为每个公司进行配置。

 常规设置中的别名域名。

所有别名都将使用此自定义域名。对于配置了别名的模型,回复将发送至 [alias]@my-custom-domain.com。对于其他模型的回复,将通过 catchall@my-custom-domain.com 发送至全能邮箱。

在 Odoo 中使用自定义域名时的邮件路由技术架构。

重要

如果使用自定义域名时通过 Odoo 的邮件服务器发送邮件,请按照 “使用自定义域名与 Odoo 邮件服务器” 的说明 操作。

由于使用了此自定义域名,所有使用别名的电子邮件(回复、退信和直接发送)都会被发送到该域名下的地址。因此,它们会被传递到与该域名关联的电子邮件服务器(MX记录)。要在聊天记录中显示它们或创建新记录,必须将这些收到的电子邮件检索到Odoo数据库中。

方法

优点

缺点

重定向

易于设置,电子邮件直接发送到数据库。

数据库的每个别名都需要进行配置。

入站邮件服务器

允许在您的邮箱中保留邮件的副本(使用IMAP)。允许在所选模型中创建记录。

依赖于 CRON,意味着邮件不会立即被检索到数据库中。每个数据库的别名都需要进行配置。

MX 记录

只需创建一条记录即可使所有别名正常工作。

需要使用子域名。需要具备高级技术知识。

重要

对于 本地数据库,重定向和 MX 记录方法还需要配置 邮件网关脚本。使用此脚本需要 高级的技术和基础设施知识

重要

请参考您的服务提供商的文档,以获取有关如何处理以下详细方法的更多详细信息。

Redirections

如果数据库托管在 Odoo OnlineOdoo.sh 上,建议使用重定向。它们允许消息在数据库中无延迟接收。

必须将 catchall 和退回地址重定向到数据库的 Odoo 子域。使用的所有其他别名也必须重定向。

Example

对于一个销售团队,需要以下重定向:

  • catchall@company-name.comcatchall@company-name.odoo.com

  • bounce@company-name.combounce@company-name.odoo.com

  • info@company-name.cominfo@company-name.odoo.com

重要

某些提供商要求通过向目标电子邮件地址发送链接来验证重定向。此过程对于 catchall 和 bounce 来说是一个问题,因为它们不用于创建记录。

  1. 修改邮件别名域上的 catchall 值。必须启用 开发者模式(调试模式) 才能访问此菜单。例如,可以将其从 catchall 更改为 temp-catchall。这将允许使用 catchall 作为另一个别名的本地部分。

  2. 打开一个使用别名的应用。例如,CRM 为每个销售团队包含别名。将 catchall 设置为销售团队别名的本地部分。

  3. 验证邮件将在CRM应用中创建一条记录。发送的邮件将在聊天记录中可见,以便您验证重定向。

  4. 不要忘记将销售团队的别名和邮件别名域上的 catchall 值改回此过程之前的状态。

注解

重定向的替代方案是 转发。使用转发时,转发邮件的地址将被识别为发件人,而在重定向时,原始发件人将始终保留。

接收邮件服务器

如前所述,使用重定向是在 Odoo 中接收电子邮件的推荐方法。然而,也可以设置接收邮件服务器。使用此方法意味着为服务器上的每个邮箱、catchall、bounce 以及数据库的每个别名创建一个接收邮件服务器,以获取所有传入的电子邮件。接收邮件服务器可以通过前往 设置 ‣ 技术 ‣ 电子邮件:接收邮件服务器 来创建。

重要

我们建议使用 IMAP 协议而非 POP 协议,因为 IMAP 会获取所有未读邮件,而 POP 会获取所有邮件的历史记录,然后将它们标记为在您的邮箱中已删除。

小技巧

也可以通过 Gmail 使用 Google OAuthOutlook 使用 Microsoft Azure OAuth 连接邮箱。

无论选择哪种协议,电子邮件都是通过 Mail: Fetchmail Service 计划操作来获取的。

此外,在 Odoo 中使用入站邮件服务器提供了在指定模型中创建新记录的机会。每个入站邮件服务器可以在不同的模型中创建记录。

Example

task@company-name.com 上收到的邮件将由 Odoo 数据库获取。所有获取的邮件都将在数据库中创建一个新的项目任务。

在 Odoo 中使用自定义域名时的邮件路由技术架构。

MX record

第三种选择是在您的 DNS 区域中创建一个 MX 记录,该记录指定管理发送到您域名的电子邮件的邮件服务器。需要高级技术知识。

重要

此配置仅适用于 Odoo Online 或 Odoo.sh 基础设施上的子域名(例如,@mail.mydomain.com

以下是基于托管类型的一些规格说明:

自定义子域名必须添加到您的 Odoo 门户 中。

无限邮件循环

在某些情况下,可能会创建无限邮件循环。Odoo 提供了一些针对此类循环的保护,确保同一发件人在特定时间段内无法向别名发送过多 会创建记录 的邮件。

默认情况下,一个电子邮件地址可以在120分钟内发送最多20封邮件。如果发送了更多邮件,它们将被阻止,发件人会收到以下消息:

在尝试通过别名联系太多次后收到退信邮件。

要更改默认行为,请启用 开发者模式(调试模式),然后转到 设置 ‣ 技术 ‣ 参数: 系统参数 以添加两个参数。

  • 对于第一个参数,输入 mail.gateway.loop.minutes 作为 ,并选择分钟数作为 值`(`120 是默认行为)。

  • 对于第二个参数,输入 mail.gateway.loop.threshold 作为 ,并选择一个电子邮件数量作为 值`(`20 是默认行为)。

重要

这些参数仅用于防止创建新记录。它们 不会阻止回复 被添加到讨论中。

允许别名域名系统参数

传入别名在 Odoo 数据库中设置,用于通过接收传入的电子邮件来创建记录。要查看 Odoo 数据库中设置的别名,首先需要激活 开发者模式。然后,转到 设置应用 ‣ 技术 ‣ 别名

以下系统参数 mail.catchall.domain.allowed,设置为允许的别名域值,用逗号分隔,可以过滤出正确发送到别名的电子邮件。设置别名可以创建工单、线索、机会等的域,可以消除仅存在前缀别名而不存在域名的电子邮件地址的误报。

在某些情况下,当收到的电子邮件具有相同的别名前缀和不同的域名时,Odoo 数据库中会进行匹配。这适用于发件人、收件人和 CC 电子邮件地址中的传入电子邮件。

Example

当 Odoo 在发件人、收件人或 CC 电子邮件地址中接收到带有 commercial 前缀别名的邮件时(例如 commercial@example.com),数据库错误地将该邮件视为完整的 commercial 别名,尽管域名不同,因此会创建一个工单/线索/机会等。

要添加 mail.catchall.domain.allowed 系统参数,首先需要激活 开发者模式。然后,进入 设置应用 ‣ 技术 ‣ 系统参数。点击 新建。接着,在 字段中输入 mail.catchall.domain.allowed

接下来,在 Value 字段中,添加以逗号分隔的域名。手动 (保存),系统参数将立即生效。

mail.catchall.domain.allowed 系统参数集。

基于本地部件的来件检测

在创建新别名时,有一个选项可以启用 基于本地部分的入站检测。如果启用此功能,Odoo 只需要本地部分匹配即可路由入站邮件。如果关闭此功能,Odoo 则需要整个电子邮件地址匹配才能路由入站邮件。