SSRS 報表訂閱是否可以多個寄件者?

本文將透過簡單的實驗來測試 SSRS 報表訂閱是否可以多個寄件者。

問題描述

今天和筆者的好朋友 Sky 討論到一個需求,希望不同報表訂閱可以有不同的寄件者,SSRS 報表訂閱是否可以設定多個寄件者?就筆者的認知應該是沒辦法這麼彈性的去設定,為了確保沒說錯,筆者做了下一節的實驗來驗證自己的認知是否正確。

實作步驟

首先筆者利用 SSDT 建立一報表伺服器專案,並將之部署到 SSRS。接著開啟報表管理員,於您要設定訂閱的報表右側的下拉式選單中點選【訂閱】。

image

接著設定報表傳遞的相關選項,由於本文要實驗的目的是能否設定多個郵件寄件者,因此【傳遞者】使用預設的【電子郵件】,於收件者請輸入您要接收報表訂閱的收件者電子郵件地址,若有多個收件者可用分號隔開,由下圖可看到報表管理員設定報表訂閱的介面中並無寄件者欄位可供設定,那麼寄件者是設定在哪裡呢?

image

報表訂閱的寄件者設定是在 Reporting Services 組態管理員中設定,如下圖所示您可以在 SMTP 設定的寄件者地址中輸入您報表訂閱的寄件者地址,基本上您在寄件者地址中輸入什麼,Reporting Services 組態管理員並不會幫您檢查,只有在開始派送報表時才會去判斷寄件者地址是否符合電子郵件格式,格式錯誤才會派送才會發生失敗。而在寄件者地址中輸入多個電子郵件位址是否會發生錯誤,答案是不會的,但是會發生什麼情況?

image

經過上述實驗得到設定寄件者地址時有下列注意事項:

1. 寄件者地址只能設定一個,即使您手動輸入多個地址,並以逗號或分號隔開,報表派送時只會取第一個地址作為寄件者,如上圖設定 222@gmail.com 和 111@hotmail.com 兩個寄件者,收件者收到報表時,永遠只會顯示第一個寄件者,也就是 222@gmail.com。

2. SSRS 派送報表時並不會幫您檢查寄件者地址的可用性,亦即您所輸入的寄件者是虛造的也沒問題,只要是符合電子郵件地址的格式。

補充說明

報表訂閱是利用 SQL Server Agent 來定期派送您所設定的報表,因此開始設定訂閱前,請記得先啟動 SQL Server Agent,並且若您有報表需定期派送,建議將 SQL Server Agent 的啟動模式設為自動。

image

參考資料

- Reporting Services 中的電子郵件傳遞

- 管理訂閱 (原生模式)

- 建立、修改和刪除標準訂閱 (原生模式的 Reporting Services)