为报表服务器配置电子邮件发送功能(SSRS 配置管理器)

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

默认情况下,报表服务器电子邮件传递扩展插件未配置。 必须使用 Reporting Services 配置管理器最低配置此扩展插件。 若要设置高级属性,必须编辑 RSReportServer.config 该文件。 如果无法将报表服务器配置为使用此扩展插件,则可以改为将报表传递到共享文件夹。 有关详细信息,请参阅 File Share Delivery in Reporting Services

适用于: 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 中的 电子邮件设置 - Configuration Manager (SSRS 本机模式)电子邮件传递

  • (可选)使用文本编辑器在 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 服务器尝试将报表传递到该用户时,报表传递将失败。

若要解决此问题,可以修改配置设置,允许用户在“ 目标:” 字段中输入名称:

  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 设置为 2

本地 SMTP 服务的配置选项

如果要测试或排查报表服务器电子邮件传递问题,则配置本地 SMTP 服务非常有用。 默认情况下,本地 SMTP 服务未启用。 有关如何启用它的说明,请参阅配置报表服务器以用于电子邮件传递(SSRS 配置管理器)电子邮件设置 - Configuration Manager (SSRS 本机模式)。

报表服务器与本地 SMTP 服务器或转发器之间的连接由以下配置设置确定:

  • SendUsing 被设置为 1

  • SMTPServerPickupDirectory 设置为本地驱动器上的文件夹。

    注释

    如果使用的是本地 SMTP 服务器,请确保未设置 SMTPServer

  • From 设置电子邮件的 发件人: 行中显示的值。 此值是必需的。

使用 Reporting Services 配置管理器配置报表服务器电子邮件

  1. 验证报表服务器 Windows 服务是否对 SMTP 服务器具有 Send As 权限。

  2. 启动 Reporting Services 配置管理器并连接到报表服务器实例。

  3. 在“电子邮件设置”页上,输入 SMTP 服务器的名称。 此值可以是 IP 地址、企业 Intranet 上计算机的 UNC 名称或者完全限定域名。

  4. 发件人地址中,输入有权从 SMTP 服务器发送电子邮件的帐户的名称。

  5. 点击“应用”。

为报表服务器配置远程 SMTP 服务

  1. 验证报表服务器 Windows 服务是否对 SMTP 服务器具有 Send As 权限。

  2. 在文本编辑器中打开 RSReportServer.config 文件。

  3. 验证是否已 <UrlRoot> 设置为报表服务器 URL 地址。 此值是在您配置报表服务器时设置的,应该已经填写。 如果未设置,请键入报表服务器 URL 地址。

  4. 在“交付”部分中,找到 <ReportServerEmail>。

  5. 在 <SMTPServer>中,键入 SMTP 服务器的名称。 此值可以是 IP 地址、企业 Intranet 上计算机的 UNC 名称或者完全限定域名。

  6. 请验证 <SendUsing> 是否设置为 2。 如果设置另一个值,则报表服务器未配置为使用远程 SMTP 服务。

  7. 在 <From>中,键入有权从 SMTP 服务器发送电子邮件的帐户的名称。

  8. 保存文件。

    报表服务器将自动使用新设置;无需重启服务。 可以指定其他 SMTP 设置,以进一步配置 SMTP 服务器如何用于报表服务器电子邮件传递。 有关详细信息,请参阅 SQL Server 在线文档中的 为报表服务器配置电子邮件传递RSReportServer 配置文件

为报表服务器配置本地 SMTP 服务

  1. 在控制面板中,单击“ 添加或删除程序”。

  2. 单击 “添加/删除 Windows 组件 ”以启动 Windows 组件向导。

  3. 选择 应用程序服务器 ,然后单击“ 详细信息”。

  4. 选择 Internet Information Services (IIS), 然后单击“ 详细信息”。

  5. 选中 SMTP 服务 复选框,然后单击“ 确定”。

  6. 在 Windows 组件向导中,单击“ 下一步”。 单击“完成”。

  7. 验证服务是否在 服务 控制台中运行。

  8. 在文本编辑器中打开 RSReportServer.config 文件。

  9. 请验证是否将 <UrlRoot> 设置为报表服务器 URL 地址。 此值是在您配置报表服务器时设置的,应该已经填写。 如果未设置,请键入报表服务器 URL 地址。

  10. 在“交付”部分,找到 <ReportServerEmail>.

  11. <SMTPServer>中,清除此设置的任何值,但不删除标记。

  12. <SendUsing> 设置为 1。 如果设置另一个值,则报表服务器未配置为使用本地 SMTP 服务。

  13. <SMTPServerPickupDirectory> 设置为本地驱动器上的一个文件夹。

  14. <From> 设置为拥有从 SMTP 服务器发送电子邮件权限的帐户。

  15. 保存文件。

另请参阅

Reporting Services 配置管理器(本机模式)