1 自动化 Gmail/Office365 媒介类型
概述
Gmail 或 Office365 用户可以从媒体类型配置中的自动化功能中受益。
配置
电子邮件介质类型配置中的 Email provider 字段允许选择为 Gmail 和 Office 365 预配置的选项。
选择与 Gmail/Office365 相关的选项时,只需提供发件人电子邮件地址/密码即可创建可正常工作的介质类型。

一旦提供了电子邮件地址/密码,Zabbix 将能够自动为 Gmail/Office365 介质类型填充所有必需设置,并使用实际值/推荐值,即 SMTP server、SMTP server port、SMTP helo 和 Connection security。由于这种自动化,这些字段甚至不会显示;不过,仍然可以在介质类型列表中查看 SMTP 服务器和电子邮件详细信息(参见 Details 列)。
另请注意:
- 中继选项不需要密码。
- 对于 Office365 中继,将使用所提供电子邮件地址的域名动态填充 SMTP 服务器(即,将
example-com.mail.protection.outlook.com中的“example.com”替换为实际值)。
OAuth 令牌
OAuth 令牌 的获取功能为 Gmail、Gmail relay 和 Office365 电子邮件提供商提供了自动化特性。

只需提供一组有限的参数即可获取 OAuth 访问令牌和刷新令牌——重定向端点、客户端 ID 和 客户端密钥。Zabbix 将自动填充其他必需的值(请参见按提供商划分的 OAuth URL 默认值)。
请注意,也可以使用 Generic SMTP 表单为这些提供商设置 OAuth 授权。
在 Office365 中,必须为每个用户/共享邮箱或整个租户启用 SmtpClientAuthentication(默认设置下未启用)。
按提供商划分的 OAuth URL 默认值
下表列出了 Zabbix 使用的各提供商默认 OAuth URL 值和参数。
| 参数 | Gmail | Office365 | 通用 SMTP | |
|---|---|---|---|---|
| 授权端点 | https://accounts.google.com/o/oauth2/v2/auth |
https://login.microsoftonline.com/common/oauth2/v2.0/authorize |
无默认值 | |
| scope | https://mail.google.com |
https://outlook.office.com/SMTP.Send, offline_access |
无默认值 | |
| access_type | offline |
未使用 | 无默认值 | |
| prompt | consent |
未使用 | 无默认值 | |
| redirect_uri | 重定向端点 字段的值会由代码自动添加。不会列在 授权端点 参数中。 | |||
| state | 用于标识正在使用 OAuth 令牌更新的媒介类型的唯一哈希值会由代码自动添加。不会列在 授权端点 参数中。 | |||
| 令牌端点 | https://oauth2.googleapis.com/token |
https://login.microsoftonline.com/common/oauth2/v2.0/token |
无默认值 | |
| grant_type | authorization_code |
authorization_code |
无默认值 | |
| redirect_uri | 重定向端点 字段的值会由代码自动添加。不会列在 令牌端点 参数中。 | |||
| state | 用于标识正在使用 OAuth 令牌更新的媒介类型的唯一哈希值会由代码自动添加。不会列在 令牌端点 参数中。 | |||
适用于个人账户的 Office365 变通方法
Office365 个人账户不支持在重定向 URL 中使用查询字符串。
为了解决此问题,Apache Web 服务器管理员可以将以下重写规则添加到 .htaccess 文件中:
RewriteEngine On
RewriteRule ^/oauth\.authorize$ /zabbix.php?action=oauth.authorize [QSA,L,PT]
这样即可使用如下简化的重定向 URL:
http://server-name/zabbix/oauth.authorize
而不是使用带有查询参数的 URL,从而确保与 Office365 个人账户兼容。