設定報表伺服器的電子郵件傳遞

Reporting Services 包含一個電子郵件傳遞延伸模組,讓您能夠透過電子郵件散發報表。根據您定義電子郵件訂閱的方式而定,傳遞可能會由通知、連結、附加檔案或內嵌報表所組成。電子郵件傳遞延伸模組可搭配現有的郵件伺服器技術一起使用。郵件伺服器必須是 SMTP 伺服器或轉送器。報表伺服器會透過作業系統提供的 Collaboration Data Objects (CDO) 程式庫 (cdosys.dll) 連接到 SMTP 伺服器。

根據預設,系統並不會設定報表伺服器電子郵件傳遞延伸模組。您必須使用 Reporting Services 組態工具,以最少的方式設定此延伸模組。若要設定進階屬性,則必須編輯 RSReportServer.config 檔案。如果您無法將報表伺服器設定為使用此延伸模組,則可以改成將報表傳遞到共用資料夾。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<Reporting Services 中的檔案共用傳遞>。

組態需求

  • 報表伺服器電子郵件傳遞是在 Collaboration Data Objects (CDO) 上實作,並需要本機或遠端 Simple Mail Transfer Protocol (SMTP) 伺服器或 SMTP 轉送器。並非所有的 Windows 作業系統都支援 SMTP。如果您是使用 Itanium 型版本的 Windows Server 2008,SMTP 將不受支援。如需有關透過 CDO 提供之組態選項的詳細資訊,請參閱 MSDN 上的<組態 CoClass>(英文)。

  • 報表伺服器服務帳戶在 SMTP 伺服器上必須擁有傳送郵件的權限。

  • 電子郵件傳遞延伸模組會在電子郵件附加檔案中使用 UTF-8 編碼。您不能修改編碼;HTML 轉譯延伸模組只支援 UTF-8。

[!附註]

預設電子郵件傳遞延伸模組不提供以數位方式,將外寄郵件訊息簽章或加密的支援。

設定報表伺服器,以供本機或遠端 SMTP 服務

您可以使用本機 SMTP 服務,或遠端 SMTP 伺服器或轉送子以支援電子郵件傳遞。如果您擁有現有之遠端 SMTP 伺服器的存取權,應該考慮使用該存取權。如果沒有可用的 SMTP 伺服器,或者您隨後遇到因為電腦連接失敗造成的報表傳遞錯誤,則應該切換到使用本機 SMTP 服務。此主題會進一步提供有關如何設定報表伺服器,以供本機或遠端服務的詳細資料。

設定電子郵件傳遞的組態選項

您必須先設定提供要使用哪個 SMTP 伺服器之相關資訊的組態值,才能使用報表伺服器電子郵件傳遞。

若要為電子郵件傳遞設定報表伺服器,請執行下列步驟:

  • 如果您只是要指定 SMTP 伺服器和一個擁有傳送電子郵件之權限的使用者帳戶,請使用 Reporting Services 組態工具。這些是設定報表伺服器電子郵件傳遞延伸模組時所需的最小設定。如需詳細資訊,請參閱<如何:為電子郵件傳遞設定報表伺服器 (Reporting Services 組態)>。

  • (選擇性) 請使用文字編輯器在 RSreportserver.config 檔案中指定其他設定。這個檔案包含報表伺服器電子郵件傳遞的所有組態設定。如果您要使用本機 SMTP 伺服器,或要設定只能對特定主機進行電子郵件傳遞的限制,則必須在這些檔案中指定其他設定。如需有關尋找和修改組態檔的詳細資訊,請參閱《SQL Server 線上叢書》中的<如何:修改 Reporting Services 組態檔>。

[!附註]

報表伺服器電子郵件設定是以 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 伺服器嘗試將報表傳遞給該使用者時便會失敗。

若要解決這個問題,您可以修改組態,允許使用者在 [收件者:] 欄位中輸入名稱:

  1. 以文字編輯器開啟 RSReportServer.config。

  2. 將 SendEmailToUserAlias 設定為 False。

  3. 將 DefaultHostName 設定為 SMTP 伺服器或轉送器的網域名稱系統 (DNS) 名稱或 IP 位址。

  4. 儲存檔案。

遠端 SMTP 服務的組態選項

報表伺服器和 SMTP 伺服器或轉寄站之間的連接,是由下列組態設定決定:

  • [SendUsing] 會指定傳送訊息的方法。您可以選擇網路 SMTP 服務或本機 SMTP 服務收取目錄。若要使用遠端 SMTP 服務,必須在 RSReportServer.config 檔案中將此值設定為 2。

  • [SMTPServer] 會指定遠端 SMTP 伺服器或轉送子。如果您使用的是遠端 SMTP 伺服器或轉送子,此值為必要的。

  • [寄件者] 設定的值,會在電子郵件訊息 [寄件者:] 行內顯示。如果您使用的是遠端 SMTP 伺服器或轉送子,此值為必要的。

用於遠端 SMTP 服務的其他值包括下列項目 (請注意,除非您要覆寫預設值,否則不需要指定這些值)。

  • [SMTPServerPort] 會設定為通訊埠 25。

  • [SMTPAuthenticate] 會指定報表伺服器如何連接到遠端 SMTP 伺服器。預設值是 0 (或無驗證)。在此情況下,連接是透過匿名存取。依照您的網域組態,報表伺服器和 SMTP 伺服器可能必須是同一網域的成員。

    若要傳送電子郵件至限制的散發清單 (例如,只接受來自已驗證帳戶之內送訊息的散發清單),請將 [SMTPAuthenticate] 設定為 [2]

本機 SMTP 服務的組態選項

如果您是測試報表伺服器電子郵件傳遞或進行疑難排解,則設定本機 SMTP 服務很有用。根據預設,不會啟用本機 SMTP 服務。如需如何啟用該服務的指示,請參閱<如何:為電子郵件傳遞設定報表伺服器 (Reporting Services 組態)>。

報表伺服器和本機 SMTP 伺服器或轉寄站之間的連接,是由下列組態設定決定:

  • [SendUsing] 設定為 [1]

  • [SMTPServerPickupDirectory] 設定為本機磁碟機上的資料夾。

    [!附註]

    如果是使用本機 SMTP 伺服器,請確定並未設定 [SMTPServer]

  • [寄件者] 設定的值,會在電子郵件訊息 [寄件者:] 行內顯示。此值為必要的。