Reporting Services 包含電子郵件傳遞延伸模組,讓您可以透過電子郵件散發報表。 根據您定義電子郵件訂閱的方式,傳遞可能包含通知、連結、附件或內嵌報表。 電子郵件傳遞延伸模組可搭配您現有的郵件伺服器技術使用。 郵件伺服器必須是 SMTP 伺服器或轉寄站。 報表伺服器會透過作系統所提供的共同作業資料物件 (CDO) 連結庫 (cdosys.dll) 連接到 SMTP 伺服器。
預設不會設定報表伺服器電子郵件傳遞延伸模組。 您必須使用 Reporting Services 組態管理員來基本設定擴充功能。 若要設定進階屬性,您必須編輯 RSReportServer.config 檔案。 如果您無法將報表伺服器設定為使用此延伸模組,您可以改為將報表傳遞至共享資料夾。 如需詳細資訊,請參閱 Reporting Services 中的檔案共享傳遞。
| 適用於: Reporting Services 原生模式 |
組態需求
報表伺服器電子郵件傳遞是在共同作業數據物件 (CDO) 上實作,而且需要本機或遠端 Simple Mail Transfer Protocol (SMTP) 伺服器或 SMTP 轉寄站。 所有 Windows作系統都不支援 SMTP。 如果您使用以 Itanium 為基礎的 Windows Server 2008 版本,則不支援 SMTP。 如需透過 CDO 提供之組態選項的詳細資訊,請參閱 MSDN 上的 Configuration CoClass 。
報表伺服器服務帳戶必須具有 SMTP 伺服器傳送郵件的許可權。
電子郵件傳遞延伸模組會在電子郵件附件中使用UTF-8編碼。 您無法修改編碼;HTML 轉譯延伸模組僅支援UTF-8。
備註
預設電子郵件傳遞延伸模組不支援數字簽署或加密外寄郵件訊息。
設定本機或遠端 SMTP 服務的報表伺服器
您可以使用本機 SMTP 服務或遠端 SMTP 伺服器或轉寄站來支援電子郵件傳遞。 如果您有現有遠端 SMTP 伺服器的存取權,您應該考慮使用它。 如果沒有可用的 SMTP 伺服器,或您後續遇到可歸因於電腦連線失敗的報告傳遞錯誤,您應該切換至使用本機 SMTP 服務。 如需如何為本機或遠端服務設定報表伺服器的詳細數據,請參閱本主題的進一步說明。
設定電子郵件傳遞的組態選項
您必須先設定組態值,以提供要使用哪個 SMTP 伺服器的資訊,才能使用報表伺服器電子郵件傳遞。
若要設定報表伺服器進行電子郵件傳遞,請執行下列動作:
如果您只指定 SMTP 伺服器和具有傳送電子郵件許可權的用戶帳戶,請使用 Reporting Services 組態管理員。 這些是設定報表伺服器電子郵件傳遞延伸模組所需的最低設定。 如需詳細資訊,請參閱 電子郵件設定 - Configuration Manager (SSRS 原生模式) 和 Reporting Services 中的電子郵件傳遞。
(選擇性)使用文字編輯器在 RSreportserver.config 檔案中指定其他設定。 此檔案包含報表伺服器電子郵件傳遞的所有組態設定。 如果您使用本機 SMTP 伺服器,或將電子郵件傳遞限制為特定主機,則需要在這些檔案中指定其他設定。 如需尋找和修改組態檔的詳細資訊,請參閱《SQL Server 在線叢書》中的修改 Reporting Services 組態檔 (RSreportserver.config)。
備註
報表伺服器電子郵件設定是以 CDO 為基礎。 如果您想要深入瞭解特定設定,您可以參閱 CDO 生產檔。
報表伺服器電子郵件設定範例
下列範例說明遠端 SMTP 伺服器 RSreportserver.config 檔案中的設定。 若要閱讀設定描述和有效值的相關信息,請參閱《SQL Server 在線叢書》中的 RSReportServer 組態檔 或 CDO 產品檔。
<RSEmailDPConfiguration>
<SMTPServer>mySMTPServer.Adventure-Works.com</SMTPServer>
<SMTPServerPort></SMTPServerPort>
<SMTPAccountName></SMTPAccountName>
<SMTPConnectionTimeout></SMTPConnectionTimeout>
<SMTPServerPickupDirectory></SMTPServerPickupDirectory>
<SMTPUseSSL></SMTPUseSSL>
<SendUsing>2</SendUsing>
<SMTPAuthenticate></SMTPAuthenticate>
<From>my-rs-email-account@Adventure-Works.com</From>
<EmbeddedRenderFormats>
<RenderingExtension>MHTML</RenderingExtension>
</EmbeddedRenderFormats>
<PrivilegedUserRenderFormats></PrivilegedUserRenderFormats>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
</ExcludedRenderFormats>
<SendEmailToUserAlias>True</SendEmailToUserAlias>
<DefaultHostName></DefaultHostName>
<PermittedHosts>
<HostName>Adventure-Works.com</HostName>
<HostName>hotmail.com</HostName>
</PermittedHosts>
</RSEmailDPConfiguration>
設定訊息中「收件者欄位」的組態選項
根據 管理個別訂閱 任務所授與的許可權建立的使用者自訂訂閱,包含以網域使用者帳號為基礎的預先設定用戶名稱。 當使用者建立訂閱時,收件者: 欄位中的收件者名稱會使用訂閱建立者的網域用戶帳戶自我尋址。
如果您使用與網域用戶帳戶不同的電子郵件帳戶的 SMTP 伺服器或轉寄站,當 SMTP 伺服器嘗試將報表傳遞至該使用者時,報表傳遞將會失敗。
若要解決此問題,您可以修改組態設定,讓使用者在 [ To: ] 字段中輸入名稱:
使用文字編輯器開啟 RSReportServer.config。
將
SendEmailToUserAlias設定為False。將
DefaultHostName設定為 SMTP 伺服器或轉送器的網域名稱系統 (DNS) 名稱或 IP 位址。儲存檔案。
遠端 SMTP 服務的組態選項
報表伺服器與 SMTP 伺服器或轉寄站之間的連線取決於下列組態設定:
SendUsing會指定傳送訊息的方法。 您可以選擇網路 SMTP 服務或本機 SMTP 服務的郵件接收目錄。 若要使用遠端 SMTP 服務,此值必須在 RSReportServer.config 檔案中設定為 2 。SMTPServer指定遠端 SMTP 伺服器或轉寄站。 如果您使用遠端 SMTP 伺服器或轉寄站,此值為必要值。From會設定出現在電子郵件訊息的 From: 行中的值。 如果您使用遠端 SMTP 伺服器或轉寄站,此值為必要值。
適用於遠端 SMTP 服務的其他值包括以下幾個值(請注意,除非您要覆寫預設值,否則不需要指定這些值)。
SMTPServerPort 已針對埠 25 進行設定。
SMTPAuthenticate 會指定報表伺服器如何連接到遠端 SMTP 伺服器。 預設值為 0(或無驗證)。 在此情況下,連接是透過匿名存取。 根據您的網域組態,報表伺服器和 SMTP 伺服器可能需要是相同網域的成員。
若要將電子郵件傳送至受限制的通訊組清單(例如,只接受來自已驗證帳戶內送郵件的通訊組清單),請將 SMTPAuthenticate 設定為 2。
本機 SMTP 服務的組態選項
如果您要測試或排除報表伺服器電子郵件傳遞的故障,設定本機 SMTP 服務會非常有幫助。 預設不會啟用本機 SMTP 服務。 如需如何啟用它的指示,請參閱設定報表伺服器以進行電子郵件傳遞 (SSRS 組態管理員) 和電子郵件設定 - 組態管理員 (SSRS 原生模式)。
報表伺服器與本機 SMTP 伺服器或轉寄站之間的連線取決於下列組態設定:
SendUsing已設為 1。SMTPServerPickupDirectory 設定為本機磁碟驅動器上的資料夾。
備註
如果您使用的是本機 SMTP 伺服器,請確定您未設定
SMTPServer。From會設定出現在電子郵件訊息的 From: 行中的值。 此值是必要的。
使用 Reporting Services 組態管理員設定報表伺服器電子郵件
確認報表伺服器 Windows 服務具有
Send AsSMTP 伺服器的許可權。啟動 Reporting Services 組態管理員並連線到報表伺服器實例。
在 [電子郵件設定] 頁面上,輸入 SMTP 伺服器的名稱。 此值可以是 IP 位址、您公司內部網路之電腦的 UNC 名稱,或是完整的網域名稱。
在 [寄件者位址] 中,輸入有權從 SMTP 伺服器傳送電子郵件的帳戶名稱。
按一下 套用。
設定報表伺服器的遠端 SMTP 服務
確認報表伺服器 Windows 服務具有
Send AsSMTP 伺服器的許可權。在文字編輯器中開啟 RSReportServer.config 檔案。
確認已 <
UrlRoot> 設定為報表伺服器 URL 位址。 此值是在您設定報表伺服器時設定的,所以它應該已被填入。 如果未設定,請輸入報表伺服器 URL 位址。在 [傳遞] 區段中,尋找 <
ReportServerEmail>。在 中 <
SMTPServer>,輸入 SMTP 伺服器的名稱。 此值可以是 IP 位址、您公司內部網路之電腦的 UNC 名稱,或是完整的網域名稱。確認 已 <
SendUsing> 設定為 2。 如果設定另一個值,報表伺服器就不會設定為使用遠端 SMTP 服務。在 中 <
From>,輸入有權從 SMTP 伺服器傳送電子郵件的帳戶名稱。儲存檔案。
報表伺服器會自動使用新的設定;您不需要重新啟動服務。 您可以指定其他 SMTP 設定,以進一步設定 SMTP 伺服器如何用於報表伺服器電子郵件傳遞。 如需詳細資訊,請參閱在《SQL Server 在線叢書》中設定 報表伺服器以進行電子郵件傳遞 和 RSReportServer 組態檔 。
設定報表伺服器的本機簡訊傳輸協定 (SMTP) 服務
在 [控制面板] 中,按兩下 [新增或移除程式]。
按兩下 [新增/移除 Windows 元件 ] 以啟動 [Windows 元件精靈]。
選取 [應用程式伺服器],然後按一下 [詳細資料]。
選取 [Internet Information Services ][IIS], 然後按兩下 [ 詳細數據]。
選取 [ SMTP 服務] 複選框,然後按兩下 [ 確定]。
在 [Windows 元件精靈] 上,按 [下一步]。 按一下完成。
確認服務正在 Services 控制台中執行。
在文字編輯器中開啟 RSReportServer.config 檔案。
確認
<UrlRoot>設定為報表伺服器的 URL 位址。 此值是在您設定報表伺服器時設定的,所以它應該已被填入。 如果未設定,請輸入報表伺服器 URL 位址。在 [傳遞] 區段中,尋找
<ReportServerEmail>.在 中
<SMTPServer>,清除此設定的任何值,但不刪除標記。設定
<SendUsing>為 1。 如果設定另一個值,報表伺服器就不會設定為使用本機 SMTP 服務。設定
<SMTPServerPickupDirectory>為本機磁碟驅動器上的資料夾。設定
<From>為有權從 SMTP 伺服器傳送電子郵件的帳戶。儲存檔案。