描述問題/錯誤/問題
我想將 Outlook 連接器部署到我的組織,但不希望使用者有發送電子郵件的能力。不過,當您嘗試連接 Outlook 憑證時,它要求應用程式上的 Mail.Send 權限必須是有效的。我假設這是因為範圍被硬編碼到憑證配置中。
有沒有辦法在不需要應用程式註冊上具有 Mail.Send 能力的情況下使用 Outlook 連接器?
錯誤訊息是什麼(如果有的話)?
沒有錯誤訊息
您的 n8n 設定相關資訊
- n8n 版本: 目前不知道,目前不在現場無法取得存取權限(抱歉)
- 資料庫(預設:SQLite): SQLite
- n8n EXECUTIONS_PROCESS 設定(預設:own、main): 預設
- 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式): docker
- 作業系統: Linux
@Freddyg303 是,內建的 Outlook 憑證會將 Mail.Send 硬編碼到範圍中,節點端沒有辦法移除它。解決方法是跳過 Outlook 節點,改用 HTTP Request 搭配通用 OAuth2 API 憑證,這樣你就可以只定義你想要的範圍。
憑證設定:
然後直接呼叫 MS Graph:
使用者現在只會同意你列出的內容,完全不會看到 Mail.Send 的提示。把 URL 替換成你需要的任何操作(在 Graph API 的 /me/messages 下可以進行列表/讀取/移動/刪除等所有操作)
嗨 @Freddyg303
要在沒有 Mail.Send 權限的情況下使用 Outlook,請按照以下兩個步驟操作:
1)使用通用認證:建立「Microsoft OAuth2 API」認證,而不是 Outlook 專用認證。這樣可以解鎖「作用域」欄位,讓你手動輸入只需要的權限(如 Mail.Read),同時省略 Mail.Send。
2)使用 HTTP 請求節點:由於內建的 Outlook 節點需要鎖定的認證,請使用 HTTP 請求節點來與 Microsoft Graph API 互動。將驗證設定為你的新通用 Microsoft 認證以執行任務。