Reporting Services 原生模式中的電子郵件組態 (報表伺服器組態管理員)

您可以使用 SQL Server Reporting Services (SSRS) 電子郵件傳遞延伸模組散發報表。 根據電子郵件訂用帳戶設定而定,散發可能包含通知、連結、附加檔案或內嵌報表。 電子郵件傳遞延伸模組適用於使用簡易郵件傳輸通訊協定 (SMTP) 伺服器或轉寄站的現有郵件伺服器技術。 報表伺服器會透過作業系統提供的協同作業資料物件 (CDO) 程式庫 (cdosys.dll) 連線 SMTP 伺服器。

根據預設,系統並不會設定報表伺服器電子郵件傳遞延伸模組。 您使用報表伺服器組態管理員,以最低限度的方式設定此延伸模組。 若要設定進階屬性,請編輯 RSReportServer.config 檔案。 如果您無法將報表伺服器設定為使用此延伸模組,則可以改成將報表傳遞到共用資料夾。 如需詳細資訊,請參閱 Reporting Services 中的檔案共用傳遞

組態需求

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

已設定驗證的帳戶在 SMTP 伺服器上必須擁有傳送郵件的權限。 此電子郵件傳遞延伸模組會在電子郵件附加檔案中使用 UTF-8 編碼。 您無法修改編碼。 HTML 轉譯延伸模組僅支援 UTF-8。

注意

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

設定選項

您必須先設定提供要使用哪個 SMTP 伺服器之相關資訊的組態值,才能使用報表伺服器電子郵件傳遞。 下表說明您可以為傳遞設定報表伺服器的兩種方式:

方法 描述
報表伺服器組態管理員 如果只是要指定 SMTP 伺服器和有權傳送電子郵件的使用者帳戶,請使用報表伺服器組態管理員。 這些設定是設定報表伺服器電子郵件傳遞延伸模組時所需的最小設定。
選擇性
rsreportserver.config 檔案
如果您使用本機 SMTP 伺服器或限制電子郵件傳遞至特定主機,請使用文字編輯器來設定額外的設定。 rsreportserver.config 檔案包含報表伺服器電子郵件傳遞的所有組態設定。 如需尋找和修改設定檔的詳細資訊,請參閱修改 Reporting Services 設定檔 (rsreportserver.config)

注意

報表伺服器電子郵件設定是以 CDO 為基礎。 如需特定設定的詳細資訊,請參閱 CDO 生產文件。

使用報表伺服器組態管理員設定報表伺服器電子郵件

  1. 啟動報表伺服器組態管理員,並連線到報表伺服器執行個體。

  2. 移至 [電子郵件設定]

  3. 在 [寄件者地址] 中輸入要產生電子郵件 [寄件者:] 欄位中使用的電子郵件地址。 請指定有權從 SMTP 伺服器傳送郵件的使用者帳戶。 您為 [傳送者地址] 輸入的值,儲存在 rsreportserver.config 檔案的 <From> 欄位。

  4. 在 [SMTP 伺服器] 中,指定要使用的 SMTP 伺服器或閘道。 您為 [SMTP 伺服器] 輸入的值儲存在 rsreportserver.config 檔案的 <SMTPServer> 欄位。 這個值可以是:

    • IP 位址
    • 公司內部網路電腦的 NetBIOS 名稱
    • 完整網域名稱
  5. 在 [驗證] 清單指定如何驗證 SMTP 伺服器。

    驗證類型 描述
    無驗證 以匿名方式連線到郵件伺服器。

    此選項會將 <SendUsing> 設定為 2 的值,並將 <SMTPAuthenticate> 設定為 rsreportserver.config 檔案中 0 的值。
    使用者名稱和密碼 (基本) 指定連線郵件伺服器的使用者名稱和密碼。 您也可以選取 [使用安全連線],使用您郵件伺服器的加密連線進行此驗證。

    此選項會將 <SendUsing> 設定為 2 的值,並將 <SMTPAuthenticate> 設定為 rsreportserver.config 檔案中 1 的值。 選取 [使用安全連線] SMTPUseSSL 設定為 True<SendUserName> 中的 [使用者名稱] 會設為加密值。 <SendPassword> 中的 [密碼] 會設為加密值。
    報表伺服器服務帳戶 (NTLM) 使用您為報表伺服器指定的服務帳戶。 如果您使用報表伺服器服務帳戶進行驗證,請確認服務帳戶具有 SMTP 伺服器的 傳送為 權限。

    此選項會將 <SendUsing> 設定為 2 的值,並將 <SMTPAuthenticate> 設定為 rsreportserver.config 檔案中 2 的值。
  6. 選取套用

如果您想要調整電子郵件設定的其他欄位,請使用 rsreportserver.config 檔案,如下列各節所述。

範例報表伺服器電子郵件組態

下列範例說明遠端 SMTP 伺服器之 rsreportserver.config 檔案中的設定。 如需有關設定描述和有效值的更多資訊,請參閱 RsReportServer.config 設定檔

<RSEmailDPConfiguration>
     <SMTPServer>mySMTPServer.Adventure-Works.com</SMTPServer>
     <SMTPServerPort></SMTPServerPort>
     <SMTPAccountName></SMTPAccountName>
     <SMTPConnectionTimeout></SMTPConnectionTimeout>
     <SMTPServerPickupDirectory></SMTPServerPickupDirectory>
     <SMTPUseSSL>False</SMTPUseSSL>
     <SendUsing>2</SendUsing>
     <SMTPAuthenticate>2</SMTPAuthenticate>
     <From>my-rs-email-account@Adventure-Works.com</From>
     <EmbeddedRenderFormats>
          <RenderingExtension>MHTML</RenderingExtension>
     </EmbeddedRenderFormats>
     <PrivilegedUserRenderFormats></PrivilegedUserRenderFormats>
     <ExcludedRenderFormats>
          <RenderingExtension>HTMLOWC</RenderingExtension>
          <RenderingExtension>NULL</RenderingExtension>
          <RenderingExtension>RGDI</RenderingExtension>
     </ExcludedRenderFormats>
     <SendEmailToUserAlias>True</SendEmailToUserAlias>
     <DefaultHostName></DefaultHostName>
     <PermittedHosts>
          <HostName>Adventure-Works.com</HostName>
          <HostName>hotmail.com</HostName>
     </PermittedHosts>
     <SendUserName></SendUserName>
     <SendPassword></SendPassword>
</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 伺服器或轉寄站,這是必要值。
<From> 設定在電子郵件訊息 [寄件者:] 行顯示的值。 如果您使用的是遠端 SMTP 伺服器或轉寄站,這是必要值。

下表顯示用於遠端 SMTP 服務的其他設定:

注意

除非您想覆寫預設值,否則不需要指定這些值。

設定 描述
<SMTPServerPort> 預設設定為連接埠 25。
<SMTPAuthenticate> 指定報表伺服器連線遠端 SMTP 伺服器的方法。 預設值是 0 (或無驗證)。 在此情況下,連接是透過匿名存取。 依照您的網域組態,報表伺服器和 SMTP 伺服器可能必須是同一網域的成員。

若要傳送電子郵件至限制的通訊群組清單 (例如,只接受來自已驗證帳戶之內送訊息的通訊群組清單),請將 <SMTPAuthenticate> 設為 12。 如果設為 1,就也要設定 <SendUserName><SendPassword>。 最佳做法是透過報表伺服器組態管理員變更此設定,因為這樣會加密 <SendUserName><SendPassword> 值。

為報表伺服器設定遠端 SMTP 服務

注意

最佳做法是透過報表伺服器組態管理員設定郵件伺服器。

  1. 確認報表伺服器 Windows 服務擁有 SMTP 伺服器的 Send As 權限。
  2. 在文字編輯器中開啟 RSReportServer.config 檔案。
  3. 確認 <UrlRoot> 設定為報表伺服器的 URL 位址。 此值是在您設定報表伺服器時設定的,所以它應該已被填入。 如果未設定此值,請輸入報表伺服器的 URL 位址。
  4. <SMTPServer> 設定為 SMTP 伺服器的名稱。 此值可以是 IP 位址、公司內部網路之電腦的通用命名慣例 (UNC) 名稱,或是完整網域名稱。
  5. 如果您想使用報表伺服器的服務帳戶,將 <SendUsing> 設定為 2。 若為基本驗證,請將 <SendUsing> 設為 1。 如果將它設為 1,您必須一併提供 <SendUserName><SendPassword> 的值。 如果想要加密這些值,請在報表伺服器組態管理員內設定驗證。
  6. 如果 <SendUsing> 設為 1 或 2,請將 <SMTPAuthenticate> 設為 1
  7. 請將 <From> 指定為有權從 SMTP 伺服器傳送郵件的使用者帳戶。
  8. 儲存檔案。

報表伺服器會自動使用新的設定。 您不需要重新啟動服務。 您可以指定其他 SMTP 設定,來進一步設定如何將 SMTP 伺服器用於報表伺服器電子郵件傳遞。

本機 SMTP 服務的組態選項

如果您是測試報表伺服器電子郵件傳遞或進行疑難排解,則設定本機 SMTP 服務很有用。 根據預設,不會啟用本機 SMTP 服務。

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

  • <SendUsing> 已設為 1
  • <SMTPServerPickupDirectory> 設定為本機磁碟機上的資料夾。

    注意

    如果使用本機 SMTP 伺服器,請確定並未設定 <SMTPServer>

  • <From> 設定的值,會在電子郵件訊息 [寄件者:] 行內顯示。 數值是必要項。

若要為報表伺服器設定本機 SMTP 服務

  1. 在 [控制面板] 找到 [開啟或關閉 Windows 功能] 功能,啟動 [新增角色及功能精靈]
  2. 選取 [角色型或功能型安裝] ,然後選取 [下一步] 。
  3. 選取要安裝 Internet Information Server (IIS) 的伺服器,然後選取 [下一步] 。
  4. 在 [伺服器角色] 頁面上,選取 [下一步] 。
  5. 選取 [功能] 頁面上的 [SMTP 伺服器] ,然後選取 [下一步] 。 如果收到新增 SMTP 伺服器必要功能的提示,請選取 [新增功能]
  6. 選取 [網頁伺服器角色 (IIS)] 頁面的 [下一步] 。
  7. 選取 [角色服務] 頁面的 [下一步] 。
  8. 在 [確認安裝選項] 頁面上,選取 [安裝]
  9. 確認 [服務] 主控台正在執行 簡易郵件傳送通訊協定 (SMTP) Windows 服務。 若要設定本機 SMTP 伺服器,您需要使用系統管理工具下的 IIS 6.0 管理員。
  10. 在文字編輯器中開啟 RSReportServer.config 檔案。
  11. 確認 <UrlRoot> 設定為報表伺服器的 URL 位址。 設定報表伺服器時會設定此值,
  12. 而且值應該已經填入。 如未設定,請輸入報表伺服器的 Web 服務 URL 位址。
  13. 請確定有空白的 <SMTPServer>
  14. 請將 <SendUsing> 設為 1
  15. 請將 <SMTPAuthenticate> 設為 0
  16. 請將 <SMTPServerPickupDirectory> 設為 SMTP 服務收取資料夾。 預設位置為 C:\inetpub\mailroot\Pickup
  17. 請將 <From> 指定為有權從 SMTP 伺服器傳送郵件的使用者帳戶。 這會設定電子郵件訊息 [寄件者:] 行內顯示的值。
  18. 儲存檔案。