使用Azure OAuth将Microsoft Outlook 365连接到Odoo¶
Odoo 兼容 Microsoft 的 Azure OAuth 用于 Microsoft 365。为了从自定义域发送和接收安全电子邮件,只需要在 Azure 平台和 Odoo 数据库的后端配置一些设置。此配置适用于个人电子邮件地址或自定义域创建的地址。
在 Microsoft Azure 门户中进行设置¶
创建新应用程序¶
要开始使用,请访问 Microsoft 的 Azure 门户。如果有一个 Microsoft Outlook Office 365 账户,请使用该账户登录,否则请使用个人 Microsoft 账户 登录。具有 Azure 设置管理权限的用户需要连接并执行以下配置。接下来,导航到标记为 :guilabel:`管理 Microsoft Entra ID`(以前称为 Azure Active Directory)的部分。
现在,点击顶部菜单中的 添加 (+),然后选择 应用注册。在 注册应用程序 屏幕上,将 名称 重命名为 Odoo
或其他可识别的名称。在 支持的帐户类型 部分,选择 任何组织目录中的帐户(任何 Microsoft Entra ID 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox)。
在 Redirect URL 部分,选择 Web 作为平台,然后在 URL 字段中输入 https://<web base url>/microsoft_outlook/confirm
。web.base.url
可能会根据用于登录数据库的 URL 而变化。
注解
关于 web.base.url 的文档解释了如何固定一个唯一的 URL。也可以在 Microsoft 应用上添加不同的重定向 URL。
将 URL 添加到字段后,注册 应用程序,以便创建它。
API 权限¶
下一步应设置 API 权限。Odoo 需要特定的 API 权限才能在 Microsoft 365 设置中读取(IMAP)和发送(SMTP)电子邮件。首先,点击左侧菜单栏中的 API 权限 链接。接下来,点击 (+) 添加权限 按钮,并在 常用 Microsoft API 下选择 Microsoft Graph。然后,选择 委派权限 选项。
在搜索栏中,搜索以下内容:委派权限,并为每个权限点击 添加权限:
SMTP.Send
IMAP.AccessAsUser.All
注解
默认情况下将添加 User.Read 权限。

分配用户和组¶
添加API权限后,返回左侧边栏菜单顶部的 应用程序 的 概览 。
现在,将用户添加到此应用程序。在 Essentials 概览表下,点击标记为 Managed Application in Local Directory 的链接,或者点击表格右下角的最后一个选项。

在左侧边栏菜单中,选择 用户和组。接下来,点击 (+) 添加用户/组。根据账户的不同,可以添加 组 和 用户,或者只能添加 用户。个人账户只允许添加 用户。
在 用户 或 组 下,点击 无选择 并添加将从 Odoo 中的 Microsoft 账户 发送电子邮件的用户或用户组。 添加 用户/组,点击 选择,然后 分配 给应用程序。
创建凭据¶
现在,微软Azure应用已经设置好,需要为Odoo设置创建凭据。这些凭据包括: Client ID 和 Client Secret 。首先,可以从应用的 Overview 页面复制 Client ID 。 Client ID 或 Application ID 位于应用的 Essentials 概述中的 Display Name 下方。

接下来,需要获取 Client Secret Value。要获取此值,请单击左侧边栏菜单中的 Certificates & Secrets。然后,需要生成一个 Client Secret。为此,请单击 (+) New Client Secret 按钮。
右侧将弹出一个窗口,上面有一个标有 Add a client secret 的按钮。在 Description 下面,输入 Odoo Fetchmail
或者其他可识别的内容,然后设置 expiration date。
重要
如果第一个过期,需要生成和配置一个新的 Client Secret。在这种情况下,可能会出现服务中断,因此应该记录下过期日期并设置为最远的可能日期。
接下来,当这两个值输入后,点击 Add 。将会创建一个 Client Secret Value 和 Secret ID 。重要的是将 Value 或 Client Secret Value 复制到记事本中,因为离开此页面后它将被加密。 Secret ID 不需要。

完成这些步骤后,以下项目应准备好在Odoo中设置:
客户端 ID(客户端 ID 或 应用程序 ID)
客户端密钥(Value 或 Client Secret Value)
这样就完成了在 Microsoft Azure Portal 端的设置。
在Odoo中设置¶
输入 Microsoft Outlook 凭据¶
首先,打开Odoo数据库并导航到 Apps 模块。然后,从搜索栏中移除 Apps 过滤器,并输入 Outlook
。之后,安装名为 Microsoft Outlook 的模块。
接下来,导航到 讨论 部分下,确保 自定义电子邮件服务器 复选框已选中。这将填充一个新选项: Outlook 凭据 。
,在Save the progress.
然后,将 Client ID (Application ID) 和 Client Secret (Client Secret Value) 复制并粘贴到相应的字段中,然后 Save 设置。

配置发件人电子邮件服务器¶
在 常规设置 页面下,找到 自定义电子邮件服务器 设置,点击 发送电子邮件服务器 链接来配置 Microsoft 账户。
然后,创建一个新的电子邮件服务器并勾选 Outlook。接下来,填写 Name`(可以是任何内容)和 Microsoft Outlook 电子邮件 :guilabel:`Username。
如果 发件人过滤器 字段为空,请输入 域名或电子邮件地址。
然后,点击 连接您的Outlook帐户。
打开一个新的窗口来完成 授权过程。选择在 Odoo 中正在配置的适当的电子邮件地址。

然后,点击 Yes 允许 Odoo 访问 Microsoft 账户。之后,页面将导航回 Odoo 中新配置的 Outgoing Mail Server。配置会自动加载 Odoo 中的 token,并且一个标签 Outlook Token Valid 会以绿色显示。

最后,点击 测试连接。应该会出现一个确认消息。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 可以保持为空,但需要在 电子邮件市场营销 应用程序的设置中添加。
另请参阅
有关设置群发邮件服务器的更多信息,请访问 使用外部 SMTP 服务器发送邮件。
Example
多用户外发邮件服务器配置:
- 用户 #1 的邮箱
外发邮件服务器 #1 **用户名**(登录) =
john@example.com
外发邮件服务器 #1 FROM Filtering =
john@example.com
- User #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
配置传入电子邮件服务器¶
传入账户的配置方式应与传出电子邮件账户类似。在 技术菜单 中导航到 传入邮件服务器 并 创建 一个新的配置。勾选或选择 Outlook Oauth 认证 旁边的按钮,并输入 Microsoft Outlook 用户名。点击 连接您的 Outlook 账户。Odoo 将显示:Outlook 令牌有效 现在 测试并确认 该账户。该账户应已准备好接收发送到 Odoo 数据库的电子邮件。