核心前置條件
- SSRS 設定管理器 → 郵件設置:配置 SMTP 服務器、發件人、驗證方式
- SMTP 服務器必須允許 SSRS 服務帳戶發送郵件
- 防火牆開放 25/587/465 埠
兩種驗證模式對比
| 模式 | 適用場景 | 配置要點 |
| 匿名 | 內網 Exchange/Postfix 允許內部 IP 中繼 | 無需帳號密碼,SMTP 配置「無驗證」 |
| Windows 整合驗證 | Exchange/Office 365 需域帳戶 | SSRS 服務帳戶需有「發送作為」權限,SPN 正確 |
| 基本驗證 (用戶名/密碼) | 第三方 SMTP (SendGrid、Gmail 等) | 郵件設置 → 「使用者名稱/密碼」,啟用 SSL (465) |
常見故障排查樹
故障 1:訂閱介面無「電子郵件」選項,僅有「Windows 檔案共享」
原因:RSReportServer.config 中 `` 未啟用或 `` 為空。
修復:
smtp.corp.com
ssrs@corp.com
2
0
修改後重啟 Reporting Services 服務。
故障 2:郵件發送失敗,日誌記錄「郵件傳遞失敗」
- 查看 SSRS 日誌:`\LogFiles\ReportServer_.log` 搜 `EmailDeliveryProvider`
- 常見錯誤碼:
- 5.7.1 / 5.7.60 → 驗證失敗/中繼拒絕 → 檢查 SMTP 允許中繼 IP/帳戶權限
- 4.4.1 / 4.4.7 → 連接超時/網絡不可達 → 檢查防火牆、DNS、埠
- 5.1.1 → 收件人不存在 → 訂閱參數 Email 地址有效性
故障 3:訂閱創建成功但從未發送
- SQL Agent 服務未運行 (訂閱依賴 Agent 任務)
- 訂閱排程未啟用/時間衝突
- 報表渲染超時 (大報表) → 增加 `RenderingTimeout`
最佳實踐清單
- 專用發件郵箱 (如 `ssrs-noreply@corp.com`),配置 SPF/DKIM/DMARC
2. SMTP 服務器白名單 SSRS 服務器 IP
3. 訂閱失敗郵件抄送 DBA 郵箱 (配置 ``)
4. 定期清理 `ReportServer` 資料庫 `Subscriptions`、`Notifications` 表歷史記錄
5. 測試環境用郵件捕獲工具 (如 smtp4dev、Papercut) 避免誤發真人
