使用 Azure OAuth 将 Microsoft Outlook 365 连接到 Odoo

Odoo 兼容 Microsoft 365 的 Azure OAuth。要从自定义域发送和接收安全电子邮件,只需在 Azure 平台和 Odoo 数据库后端配置一些设置即可。该配置既可用于个人电子邮件地址,也可用于自定义域创建的地址。

在 Microsoft Azure 门户中进行设置

创建一个新的应用程序

要开始使用,请访问 Microsoft 的 Azure 门户。如果有 Microsoft Outlook Office 365 帐户,请使用该帐户登录,否则请使用个人 Microsoft 帐户`登录。具有 Azure 设置管理访问权限的用户需要连接并执行以下配置。接下来,导航到标有 :guilabel:`Manage Microsoft Entra ID 的部分(正式名称为 Azure Active Directory)。

现在,点击顶部菜单中的 添加 (+),然后选择 应用程序注册。在:guilabel:注册应用程序`屏幕上,将:guilabel:`名称`重命名为`Odoo`或其他可识别的名称。在 :guilabel:`支持账户类型 部分中选择 任何组织目录中的帐户 (任何Microsoft企业ID目录 - 多租户)和个人 Microsoft 帐户(例如Skype、Xbox)

Redirect URL 部分,选择 Web 作为平台,然后在 URL 字段中输入 https://<odoo base url>/microsoft_outlook/confirm。在 URL 字段中,Odoo 基本 URL 是可以到达 Odoo 实例的规范域。

Example

mydatabase.odoo.com,其中 mydatabase 是数据库子域的实际前缀,假定其托管在 Odoo.com 上

将 URL 添加到字段后,Register 应用程序将被创建。

API 权限

接下来应设置 API 权限。Odoo 需要特定的 API 权限才能在 Microsoft 365 设置中读取(IMAP)和发送(SMTP)电子邮件。首先,点击左侧菜单栏中的 API 权限 链接。然后,点击 (+) 添加权限`按钮,在 :guilabel:`常用的微软API 下选择 微软图表。然后,选择 委托权限 选项。

在搜索栏中搜索:guilabel:授权权限 ,然后为每项点击:guilabel:添加权限

  • SMTP.Send

  • IMAP.AccessAsUser.All

注解

默认情况下会添加 User.Read 权限。

Odoo 整合所需的 API 权限列于 Microsoft Graph 下方。

分配用户和组

添加 API 权限后,返回左侧边栏菜单顶部的 应用 的:guilabel:概览

现在,为该应用程序添加用户。在:guilabel:要点 概览表下,点击标有:guilabel:本地目录中的托管应用程序 的链接,或表格右下方的最后一个选项。

单击已创建应用程序的本地目录中的管理应用程序链接,添加用户/组。

在左侧边栏菜单中选择 用户和组。然后,点击 (+) 添加用户/组。根据账户,可以添加 :guilabel:` 组` 和 :guilabel:` 用户`,也可以只添加 用户。个人账户只允许添加 用户

用户 下,单击 未选择 并添加将从 Odoo 中的:guilabel:Microsoft 帐户`发送电子邮件的用户或用户组。 :guilabel:`Add 用户/组,单击 选择,然后 分配 他们到应用程序。

创建凭据

现在 Microsoft Azure 应用程序已设置完毕,需要为 Odoo 设置创建凭证。其中包括 客户 ID客户密钥。首先,可从应用程序的 概览 页面复制 客户 ID。guilabel:客户 ID应用程序 ID 位于应用程序 要点 概览中 显示名称 下方。

应用程序/客户端 ID 位于应用程序概览中。

接下来,需要检索 客户密钥值。要获取该值,请单击左侧边栏菜单中的 认证 & 密钥。然后,需要生成 客户密钥。为此,请单击 (+) 新客户密文 按钮。

右侧窗口会弹出一个标有 添加客户密钥 的按钮。在:guilabel:描述`下,输入`Odoo Fetchmail 或其他可识别的内容,然后设置:guilabel:失效日期

重要

如果第一个:guilabel:客户密钥`过期,则需要制作和配置新的:guilabel:`客户密钥。在此情况下,服务可能会中断,因此应注意过期日期,并将其设置为尽可能远的日期。

输入这两个值后,点击 添加。将创建 客户密钥值密钥 ID。请务必将 客户密钥值 复制到记事本中,因为离开此页面后它将被加密。不需要 密钥 ID

客户端密文值或应用程序凭证中的值。

完成这些步骤后,就可以在 Odoo 中设置以下项目了:

  • 客户端 ID(客户端 ID 或 :guilabel:` 应用程序 ID)

  • 客户密钥(客户密钥值)

这样就完成了 Microsoft Azure Portal 侧的设置。

设置Odoo

输入 Microsoft Outlook 凭据

首先,打开 Odoo 数据库并导航至 Apps 模块。然后,从搜索栏中移除 Apps 筛选器,并输入 Outlook。然后,安装名为 Microsoft Outlook 的模块。

接下来,导航至 设置‣常规设置,在 :guilabel:` 讨论`应用程序部分,确保选中 自定义电子邮件服务器 复选框。将弹出 Outlook 凭据 新选项。

:guilabel:`保存`进度。

然后,将:guilabel:`Client ID(应用程序 ID)和:guilabel:`Client Secret(客户端密文值)`复制并粘贴到相应字段,然后:guilabel:`保存`设置。

Odoo 常规设置中的 Outlook 凭据。

配置邮件外发服务器

在:guilabel:常规设置 页面的:guilabel:定制电邮服务器 设置下,单击:guilabel:`外发电邮服务器`链接以配置 Microsoft 帐户。

然后,创建一个新的电子邮件服务器,并选中 Outlook 复选框。然后,填写 名称`(可以是任何内容)和 Microsoft Outlook 电子邮件 :guilabel:`用户名

如果 From Filter 字段为空,请输入 域名或电子邮件地址

然后,点击:guilabel:连接您的 Outlook 帐户

Microsoft 将打开一个新窗口,以完成 :guilabel:` 授权过程`。选择正在 Odoo 中配置的相应电子邮件地址。

权限页面用于授予新创建的应用程序与 Odoo 之间的访问权限。

然后,点击 ,允许 Odoo 访问 Microsoft 帐户。之后,页面将导航回 Odoo 中新配置的 外发邮件服务器。配置会自动加载 Odoo 中的 令牌,并显示绿色标签:guilabel:Outlook 令牌有效

有效的 Outlook 令牌指示符。

最后,点击 测试连接。此时会出现一条确认信息。现在,Odoo 数据库可以使用 OAuth 身份验证通过 Microsoft Outlook 发送安全可靠的电子邮件。

使用单一外发邮件服务器配置

在 Microsoft Azure 中,配置单个外发服务器是最简单的配置,而且不需要为数据库中的用户设置广泛的访问权限。

通用电子邮件地址将用于为数据库中的所有用户发送电子邮件。例如,它的结构可以是`通知`别名 (notifications@example.com) 或`联系人`别名 (contact@example.com)。该地址必须设置为服务器上的 FROM 筛选器。该地址还必须与系统参数中的`{mail.default.from}@{mail.catchall.domain}`关键组合相匹配。

参见

有关 from 筛选器的更多信息,请访问 使用默认的“发件人”电子邮件地址

注解

设置 ‣ 技术 ‣ 参数 ‣ 系统参数 菜单中激活 开发者模式 即可访问 系统参数

使用此配置时,从数据库发送的每封电子邮件都将使用配置的 `通知`邮箱地址。不过需要注意的是,发件人的姓名会显示出来,但其电子邮件地址会改变:

真实发件人的姓名和静态电子邮件。

Example

单一外发邮件服务器配置:

  • 外发邮件服务器 **用户名**(登录) = notifications@example.com

  • 外发邮件服务器 FROM 筛选器 = notifications@example.com

  • 系统参数中的 “mail.catchall.domain”=”example.com

  • 系统参数中的 mail.default.from = notifications

用户特定(多用户)配置

除通用电子邮件服务器外,还可为数据库中的用户设置单独的电子邮件服务器。这些电子邮件地址必须在每个单独服务器上设置为 FROM 筛选器 才能生效。

这种配置是 Microsoft Azure 两种配置中难度较大的一种,因为它要求所有配置了电子邮件服务器的用户都有访问设置的权限,才能建立与电子邮件服务器的连接。

设置

每位用户都应设置独立的电子邮件服务器。应设置 FROM 筛选器 以便只从该服务器发送用户的电子邮件。换句话说,只有电子邮件地址符合 FROM 筛选器 设置的用户才能使用该服务器。

参见

有关 from 筛选器的更多信息,请访问 使用默认的“发件人”电子邮件地址

必须设置 后备服务器,以便发送 notifications。该服务器的 FROM Filtering 值应为`{mail.default.from}@{mail.catchall.domain}`。

注解

设置 ‣ 技术 ‣ 参数 ‣ 系统参数 菜单中激活 开发者模式 即可访问 系统参数

重要

该事务性电子邮件服务器的配置可与外发邮件群发服务器同时使用。邮件群发服务器的 FROM Filtering 可以保持为空,但需要在 电子邮件市场营销 应用程序的设置中添加。

参见

有关设置邮件群发服务器的更多信息,请访问 为事务性邮件和群发邮件设置不同的专用服务器

Example

多用户外发邮件服务器配置:

  • 用户 #1 邮箱
    • 外发邮件服务器 #1 **用户名**(登录) = john@example.com

    • 外发邮件服务器 #1 FROM Filtering = john@example.com

  • 用户#2邮箱
    • 外发邮件服务器 #2 **用户名**(登录) = jane@example.com

    • 外发邮件服务器 #2 FROM Filtering = jane@example.com

  • 通知邮箱
    • 外发邮件服务器 #3 用户名 (登录名)= notifications@example.com

    • 外发邮件服务器 #3 FROM Filtering = notifications@example.com

  • 系统参数
    • 系统参数中的 “mail.catchall.domain”=”example.com

    • 系统参数中的 mail.default.from = notifications

配置接收电子邮件服务器

收件账户的配置方式应与发件账户类似。导航至 技术菜单 中的 收件邮件服务器创建 新配置。勾选或选择:guilabel:Outlook Oauth 身份验证`旁边的按钮,并输入:guilabel:`Microsoft Outlook 用户名。 点击 连接您的 Outlook 帐户。Odoo 将显示: Outlook 令牌有效 现在 :guilabel:` 测试并确认` 帐户。该账户应已准备好向 Odoo 数据库接收电子邮件。