# 在 QlikView 中使用 OAuth 2.0 发送电子邮件

QlikView 可以结合 Microsoft 365 使用 OAuth 2.0，通过 Microsoft Graph 发送电子邮件。OAuth 2.0 是一种附加的邮件连接方式；现有的 SMTP 配置仍然可用。

当选择 OAuth 2.0 时，QlikView 不会直接连接到 SMTP 服务器。它从 `login.microsoftonline.com` 获取访问令牌，并通过位于 `graph.microsoft.com/v1.0/users/{sender}/sendMail` 的 Microsoft Graph REST API 发送电子邮件。

## 先决条件

在配置 QlikView 之前，请在 Microsoft Entra ID 中注册应用程序：

1. 登录 Azure 门户并转到 Microsoft Entra ID &gt; 应用注册 &gt; 新注册。
2. 注册应用程序。
3. 在 证书和密码 下，创建客户端密码并复制其值。该值仅显示一次。
4. 在 API 权限下，添加 Microsoft Graph Mail.Send 应用程序权限。
5. 为该权限授予管理员同意。
6. 记录应用程序 (客户端) ID 和目录 (租户) ID。

应用程序必须对用作发件人的邮箱具有 Mail.Send 权限。

## 安全性

QlikView 在存储租户 ID、客户端 ID 和客户端密文之前对其进行加密。凭据不以明文形式存储。

## 测试 OAuth 2.0 邮件

使用配置页面中的测试邮件控件：

* 在 QlikView Desktop 中，单击用户首选项 &gt; 邮件页面上的测试。
* 在 QlikView 管理控制台中，在发送测试电子邮件至中输入地址并单击发送。

QlikView 获取 OAuth 2.0 令牌并通过 Microsoft Graph 发送测试电子邮件。如果步骤失败，请查看错误消息。

## 文件附件

当 QlikView 发送带有附件的电子邮件时，它会将附件作为 Base64 编码内容内联包含在 Microsoft Graph 请求中。每个附件的大小限制为 3 MB。对于较大的文件，请使用其他交付方式。

## 故障排除

| 错误 | 原因 | 解析 |
| --- | --- | --- |
| `OAuth 2.0 Client ID, Tenant ID, and Client Secret are required.` | 一个或多个 OAuth 字段为空。 | 验证邮件设置页面上的所有三个字段均已填写。 |
| `OAuth token request failed: AADSTS7000215` | 客户端密钥无效。 | 在 Microsoft Entra ID 中生成新的客户端密码并更新 QlikView。 |
| `OAuth token request failed: AADSTS700016` | 应用程序(客户端) ID 不正确，或者该应用程序在指定的租户中不存在。 | 验证应用程序 (客户端) ID 和目录 (租户) ID。 |
| `Graph sendMail failed: ErrorAccessDenied` | 该应用程序没有 `Mail.Send` 权限，或者未授予管理员同意。 | 在 Microsoft Entra ID 中添加 `Mail.Send` 应用程序权限并授予管理员同意。 |
| `Graph sendMail failed: ErrorItemNotFound` | 发件人地址与租户中的有效邮箱不对应。 | 请确保发件人地址与现有的 Microsoft 365 邮箱相匹配。 |
| `Attachment too large` | 文件附件超过 3 MB 的内联限制。 | 减小文件大小或使用其他传递方式。 |