[comment]: # ({473c0010-d40475f4})
# 1 电子邮件

[comment]: # ({/473c0010-d40475f4})

[comment]: # ({860d77dd-9d59e93d})
#### 概述

要将电子邮件配置为消息的传递渠道，您需要将电子邮件配置为媒体类型，并为用户分配特定的电子邮件地址。

::: noteclassic
单个事件的多个通知将归并到同一个电子邮件会话线程中。
:::

[comment]: # ({/860d77dd-9d59e93d})

[comment]: # ({8dc4cca3-3711e99d})
#### 配置

要将电子邮件配置为媒体类型：

1. 前往 *报警 > 媒体类型*。
2. 单击 *创建媒体类型*（或在预定义媒体类型列表中单击 *Email*）。

**媒体类型** 选项卡包含媒体类型的一般属性：

![](../../../../../assets/en/manual/config/notifications/media/media_email.png){width="600"}

所有必填输入字段都以红色星号标记。

:::notewarning
导出电子邮件媒体类型配置时，密码会以明文形式导出。
:::

以下参数是电子邮件媒体类型特有的：

|参数|说明|
|--|--------|
|*电子邮件提供商*|选择电子邮件提供商：*Generic SMTP*、*Gmail*、*Gmail relay*、*Office365* 或 *Office365 relay*。<br>如果选择与 Gmail/Office365 相关的选项，则只需提供发件人电子邮件地址和密码；*SMTP server*、*SMTP server port*、*SMTP helo* 和 *Connection security* 等选项将由 Zabbix 自动填充。另请参见：[自动化 Gmail/Office365 媒体类型](/manual/config/notifications/media/email/gmail_office)。 |
|*SMTP server*|设置用于处理外发消息的 SMTP 服务器。<br>仅当选择 *Generic SMTP* 作为电子邮件提供商时，此字段可用。|
|*SMTP server port*|设置用于处理外发消息的 SMTP 服务器端口。<br>仅当选择 *Generic SMTP* 作为电子邮件提供商时，此字段可用。|
|*Email*|此处输入的地址将用作所发送消息的 **From** 地址。<br>支持在实际电子邮件地址前添加发件人显示名称（如上方截图中 *Zabbix\_info <zabbix\@company.com>* 里的 "Zabbix\_info"）。<br>与 RFC 5322 所允许的格式相比，Zabbix 电子邮件中的显示名称存在一些限制，示例如下：<br>有效示例：<br>*zabbix\@company.com*（仅电子邮件地址，无需使用尖括号）<br>*Zabbix\_info <zabbix\@company.com>*（显示名称和置于尖括号中的电子邮件地址）<br>*∑Ω-monitoring <zabbix\@company.com>*（显示名称中包含 UTF-8 字符）<br>无效示例：<br>*Zabbix HQ zabbix\@company.com*（存在显示名称，但电子邮件地址未用尖括号括起）<br>*"Zabbix\\@\\<H(comment)Q\\>" <zabbix\@company.com>*（尽管根据 RFC 5322 这是有效的，但 Zabbix 电子邮件不支持带引号的字符对和注释）|
|*SMTP helo*|设置正确的 SMTP helo 值，通常为域名。<br>如果为空，将发送电子邮件的域名（即 *Email* 字段中 `@` 后面的部分）。如果无法获取域名，将记录一条调试级别警告，并发送服务器主机名作为 HELO 命令中的域名。<br>仅当选择 *Generic SMTP* 作为电子邮件提供商时，此字段可用。|
|*Connection security*|选择连接安全级别：<br>**None** - 不使用 [CURLOPT\_USE\_SSL](http://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html) 选项<br>**STARTTLS** - 使用 CURLOPT\_USE\_SSL 选项，并将值设为 CURLUSESSL\_ALL<br>**SSL/TLS** - 是否使用 CURLOPT\_USE\_SSL 为可选|
|*SSL verify peer*|勾选复选框以验证 SMTP 服务器的 SSL 证书。<br>服务器配置指令 "SSLCALocation" 的值应传递给 [CURLOPT\_CAPATH](http://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html) 以进行证书验证。<br>这将设置 cURL 选项 [CURLOPT\_SSL\_VERIFYPEER](http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html)。|
|*SSL verify host*|勾选复选框以验证 SMTP 服务器证书中的 *Common Name* 字段或 *Subject Alternate Name* 字段是否匹配。<br>这将设置 cURL 选项 [CURLOPT\_SSL\_VERIFYHOST](http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html)。|
|*Authentication*|选择认证级别：<br>**None** - 不设置任何 cURL 选项<br>**Username and password** - 表示设置 "AUTH=\*"，将认证机制的选择交给 cURL<br>**OAuth** - OAuth 认证<br>*Office365 relay* 电子邮件提供商不支持 OAuth 认证。|
|*Username*|认证时使用的用户名。<br>这将设置 [CURLOPT\_USERNAME](http://curl.haxx.se/libcurl/c/CURLOPT_USERNAME.html) 的值。<br>支持 [用户宏](/manual/appendix/macros/supported_by_location_user#other-locations)。|
|*Password*|认证时使用的密码。<br>这将设置 [CURLOPT\_PASSWORD](http://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html) 的值。<br>支持 [用户宏](/manual/appendix/macros/supported_by_location_user#other-locations)。<br>导出媒体类型配置时，此处输入的值会按原样导出。为避免在导出文件中暴露敏感凭据，请使用用户宏（例如 `{$EMAIL_SMTP_PASSWORD}`）代替明文密码——导出的将是宏引用，而密钥值应在目标系统上进行（重新）配置。|
|*OAuth tokens*|单击 *Configure*，在新窗口中设置用于获取 [OAuth tokens](#oauth-tokens) 的参数。<br>仅当在 *Authentication* 字段中选择 "OAuth" 时，此字段可用。|
|*Message format*|选择消息格式：<br>**HTML** - 以 HTML 发送<br>**Plain text** - 以纯文本发送|

::: noteimportant
要启用 SMTP 认证，Zabbix 服务器必须使用 `--with-libcurl` [编译](/manual/installation/install/sources#configure-the-sources) 选项进行编译，这需要 libcurl（版本详细信息请参见 [服务器](/manual/installation/requirements#serverproxy) 要求）。
:::

另请参见 [通用媒体类型参数](/manual/config/notifications/media#common-parameters)，了解如何配置默认消息和报警处理选项的详细信息。

[comment]: # ({/8dc4cca3-3711e99d})

[comment]: # ({6f74aa36-61f2be67})
#### OAuth 令牌

检索 OAuth 令牌需要以下参数：

![](../../../../../assets/en/manual/config/notifications/media/media_email_oauth.png){width="600"}

|参数|说明|
|--|--------|
|*重定向端点*|输入 Zabbix 前端 URL，OAuth 服务会将 OAuth 授权重定向回该地址（格式为 `https://<zabbix-frontend-url>/zabbix.php?action=oauth.authorize`）。<br>为新的电子邮件媒介类型定义了 [前端 URL](/manual/web_interface/frontend_sections/administration/general#other) 后，将自动设置该值。|
|*客户端 ID*|输入在 OAuth 授权服务器中注册的客户端应用的唯一标识符。|
|*客户端密钥*|输入在 OAuth 授权服务器中注册的客户端应用的私有密钥。|
|*授权端点*|输入用于请求用户授权的 OAuth 授权服务器 URL。|
|*授权参数*|输入授权端点的参数。|
|*授权码*|输入授权码：<br>**自动** - 将通过重定向页面自动获取该代码<br>**手动** - 如果自动获取失败，则手动输入该代码|
|*令牌端点*|输入 OAuth 授权服务器 URL，用于将授权码交换为访问令牌和刷新令牌。|
|*令牌参数*|输入访问令牌的参数。|

:::notetip
对于 **Gmail**、**Gmail relay** 和 **Office365** 电子邮件提供商，OAuth 令牌检索具有[自动化功能](/manual/config/notifications/media/email/gmail_office#oauth-tokens)。只需提供 *重定向端点*、*客户端 ID* 和 *客户端密钥* 参数值。Zabbix 将自动填充其他必需值（请参见[按提供商划分的 OAuth URL 默认值](/manual/config/notifications/media/email/gmail_office#oauth-url-defaults-by-provider)）。
:::

[comment]: # ({/6f74aa36-61f2be67})

[comment]: # ({cdcb5c81-7bf715f0})
##### OAuth 访问令牌和刷新令牌获取

提交 OAuth 参数后：

1. 将打开一个浏览器弹窗，引导用户访问*授权端点*。

2. 用户在 OAuth 服务中授权 Zabbix。

3. OAuth 服务会将用户重定向到 Zabbix 前端操作 `oauth.authorize`，并附带授权码和作用域值。

4. 随后，Zabbix 将向*令牌端点*发出请求，以使用授权码换取访问令牌和刷新令牌。

[comment]: # ({/cdcb5c81-7bf715f0})

[comment]: # ({50e8f033-98f29ec0})
#### 测试

要测试已配置的电子邮件介质类型是否正常工作：

1. 在介质类型[列表](/manual/config/notifications/media#overview)中找到相应的电子邮件。
2. 单击列表最后一列中的 *Test*（将打开一个测试窗口）。
3. 输入 *Send to* 收件人地址、消息正文，以及可选的主题。
4. 单击 *Test* 发送测试消息。

测试成功或失败的消息将显示在同一窗口中：

![](../../../../../assets/en/manual/config/notifications/media/test_email0.png){width="600"}

[comment]: # ({/50e8f033-98f29ec0})

[comment]: # ({859be4b6-5e74f274})
#### 用户媒介

配置好电子邮件媒介类型后，前往 *用户 > 用户* 部分并编辑用户资料，将电子邮件媒介分配给该用户。  
适用于所有媒介类型的用户媒介设置步骤，请参见[媒介类型](/manual/config/notifications/media#user-media)页面。

[comment]: # ({/859be4b6-5e74f274})
