配置报表服务器以进行电子邮件传递

Reporting Services 包括电子邮件传递扩展插件,以便可以通过电子邮件分发报表。根据定义电子邮件订阅的方式,传递可能由通知、链接、附件或嵌入报表组成。电子邮件传递扩展插件可与现有的邮件服务器技术一起使用。邮件服务器必须是 SMTP 服务器或转发器。报表服务器通过操作系统提供的协作数据对象 (CDO) 库 (cdosys.dll) 连接到 SMTP 服务器。

默认情况下,未配置报表服务器电子邮件传递扩展插件。必须使用 Reporting Services 配置工具对此扩展插件进行最低配置。若要设置高级属性,必须编辑 RSReportServer.config 文件。如果无法将报表服务器配置为使用此扩展插件,则可以将报表传递到共享文件夹。有关详细信息,请参阅 SQL Server 联机丛书中的Reporting Services 中的文件共享传递

配置要求

  • 报表服务器电子邮件传递在协作数据对象 (CDO) 上实现,且需要本地或远程的简单邮件传输协议 (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 配置工具。以下是配置报表服务器电子邮件传递扩展插件所需的最低设置。有关详细信息,请参阅如何配置报表服务器以进行电子邮件传递(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

  • **“发件人”用于设置显示在电子邮件的“发件人:”**行中的值。此值是必需的。