# 在 QlikView 中使用 OAuth 2.0 傳送電子郵件

QlikView 可以搭配 Microsoft 365 使用 OAuth 2.0，透過 Microsoft Graph 傳送電子郵件。OAuth 2.0 是一種額外的郵件連線方式；現有的 SMTP 設定仍可使用。

選取 OAuth 2.0 時，QlikView 不會直接連線至 SMTP 伺服器。它會從 `login.microsoftonline.com` 取得存取 Token，並透過 `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 Token，並透過 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` | 應用程式 (用戶端) 識別碼不正確，或該應用程式在指定的租用戶中不存在。 | 驗證應用程式 (用戶端) 識別碼和目錄 (租用戶) 識別碼。 |
| `Graph sendMail failed: ErrorAccessDenied` | 應用程式沒有 `Mail.Send` 權限，或尚未授予管理員同意。 | 新增 `Mail.Send` 應用程式權限，並在 Microsoft Entra ID 中授與管理員同意。 |
| `Graph sendMail failed: ErrorItemNotFound` | 寄件者地址未對應至租用戶中的有效信箱。 | 請確認寄件者地址與現有的 Microsoft 365 信箱相符。 |
| `Attachment too large` | 檔案附件超過 3 MB 的內嵌限制。 | 縮小檔案大小或使用其他傳送方式。 |