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 提供的配置选项的详细信息,请参阅 MSDN 上的 Configuration CoClass。
配置的身份验证帐户必须对 SMTP 服务器拥有权限才能发送邮件。 电子邮件传递扩展插件在电子邮件附件中使用 UTF-8 编码。 无法修改编码。 HTML 呈现扩展插件仅支持 UTF-8。
注意
默认电子邮件传递扩展插件不支持对待发邮件进行数字签名或加密。
配置选项
必须先设置确定使用哪一个 SMTP 服务器的配置值,才能使用报表服务器电子邮件传递。 下表介绍了配置报表服务器进行传递的两种方式:
方法 | 说明 |
---|---|
报表服务器配置管理器 | 如果要仅指定一个 SMTP 服务器和一个具有发送电子邮件权限的用户帐户,请使用报表服务器配置管理器。 这些设置是配置报表服务器电子邮件传递扩展插件所需的最低要求。 |
可选rsreportserver.config 文件 |
如果使用本地 SMTP 服务器或将电子邮件传递限制到特定主机,请使用文本编辑器配置额外设置。 rsreportserver.config 文件包含报表服务器电子邮件传递的所有配置设置。 有关如何查找并修改配置文件的详细信息,请参阅修改 Reporting Services 配置文件 (rsreportserver.config )。 |
注意
报表服务器电子邮件设置都是基于 CDO。 有关特定设置的详细信息,请参阅 CDO 生产文档。
使用报表服务器配置管理器配置报表服务器电子邮件
启动报表服务器配置管理器,然后连接到报表服务器实例。
转到电子邮件设置。
在“发件人地址”中,输入要在所生成电子邮件的“发件人:”字段中使用的电子邮件地址。 指定一个有权从 SMTP 服务器发送电子邮件的用户帐户。 为发件人地址输入的值保存在
rsreportserver.config
文件中的<From>
字段。在 SMTP Server中,指定要使用的 SMTP 服务器或网关。 为 SMTP 服务器输入的值保存在
rsreportserver.config
文件中的<SMTPServer>
字段。 此值可以是:- IP 地址
- 公司内部网上计算机的 NetBIOS 名称
- 完全限定的域名
在身份验证列表中,指定如何向 SMTP 服务器进行身份验证。
身份验证类型 说明 不进行身份验证 匿名连接到邮件服务器。
在rsreportserver.config
文件中,此选项将<SendUsing>
值设置为 2,将<SMTPAuthenticate>
值设置为 0。用户名和密码(基本) 指定连接到邮件服务器的用户名和密码。 还可以选择“使用安全连接”将此身份验证通过加密连接转至邮件服务器。
在rsreportserver.config
文件中,此选项将<SendUsing>
值设置为 2,将<SMTPAuthenticate>
值设置为 1。 选择使用安全连接会将SMTPUseSSL
设置为 True。 在<SendUserName>
中将“用户名”设置为一个加密值。 在<SendPassword>
中将“密码”设置为一个加密值。报表服务器服务帐户 (NTLM) 使用为报表服务器指定的服务帐户。 如果使用报表服务器服务帐户进行身份验证,请验证该服务帐户在 SMTP 服务器上是否具有发送方式权限。
在rsreportserver.config
文件中,此选项将<SendUsing>
值设置为 2,将<SMTPAuthenticate>
值设置为 2。选择“应用”。
如果要调整电子邮件配置的其他字段,请使用以下各节中所述的 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 服务器尝试传递报表时会失败。
若要解决该问题,可以修改允许用户在收件人:字段中输入名称的配置设置:
- 在文本编辑器中打开
RSReportServer.config
。 - 将
<SendEmailToUserAlias>
设置为 False。 - 将
<DefaultHostName>
设置为 SMTP 服务器或转发器的域名系统 (DNS) 名称或 IP 地址。 - 保存文件。
远程 SMTP 服务的配置选项
报表服务器与 SMTP 服务器或转发器之间的连接由下列配置设置决定:
设置 | 说明 |
---|---|
<SendUsing> |
指定发送消息的方法。 您可以选择网络 SMTP 服务或本地 SMTP 服务拾取目录。 若要使用远程 SMTP 服务,必须在 RSReportServer.config 文件中将此值设置为 2。 |
<SMTPServer> |
指定远程 SMTP 服务器或转发器。 如果使用远程 SMTP 服务器或转发器,则必须指定此值。 |
<From> |
设置显示在电子邮件发件人:行中的值。 如果使用远程 SMTP 服务器或转发器,则必须指定此值。 |
下表显示了用于远程 SMTP 服务的其他设置:
注意
除非要替代默认值,否则不需要指定这些值。
设置 | 说明 |
---|---|
<SMTPServerPort> |
默认情况下,为端口 25 配置。 |
<SMTPAuthenticate> |
指定如何将报表服务器连接到远程 SMTP 服务器。 默认值为 0 (或不进行身份验证)。 这种情况下,将通过匿名访问创建连接。 报表服务器和 SMTP 服务器可能需要成为同一域的成员,但具体取决于域配置。 若要向受限制的通讯组列表发送电子邮件(例如,只接受经过身份验证的帐户发来的邮件的通讯组列表),则将 <SMTPAuthenticate> 设置为 1 或 2。 如果设置为 1,则还需要设置 <SendUserName> 和 <SendPassword> 。 最佳做法是通过报表服务器配置管理器更改此设置,因为该管理器会加密 <SendUserName> 和 <SendPassword> 的值。 |
配置报表服务器的远程 SMTP 服务
注意
最佳做法是通过报表服务器配置管理器配置邮件服务器。
- 请验证报表服务器 Windows 服务是否对 SMTP 服务器拥有 Send As 权限。
- 在文本编辑器中打开
RSReportServer.config
文件。 - 请验证是否将
<UrlRoot>
设置为报表服务器 URL 地址。 此值是在您配置报表服务器时设置的,应该已经填写。 如果未设置此值,则输入报表服务器 URL 地址。 - 将
<SMTPServer>
设置为 SMTP 服务器名称。 此值可以是 IP 地址、公司内部网上计算机的通用命名约定 (UNC) 名称或完全限定的域名。 - 将
<SendUsing>
设置为 2 以使用报表服务器的服务帐户。 将<SendUsing>
设置为 1 以进行基本身份验证。 如果设置为 1,则还要提供<SendUserName>
和<SendPassword>
的值。 如果想要加密这些值,请在报表服务器配置管理器中设置身份验证。 - 如果将
<SendUsing>
设置为 1 或 2,则将<SMTPAuthenticate>
的值设置为 1。 - 将
<From>
设置为有权从 SMTP 服务器发送电子邮件的帐户。 - 保存文件。
报表服务器自动使用新设置。 无需重新启动服务。 可以指定其他 SMTP 设置,进一步配置如何将 SMTP 服务器用于报表服务器电子邮件传递。
本地 SMTP 服务的配置选项
若要测试报表服务器电子邮件传递或解决所遇到的疑难问题,则配置本地 SMTP 服务会很有用。 默认不会启用本地 SMTP 服务。
报表服务器与本地 SMTP 服务器或转发器之间的连接由下列配置设置决定:
<SendUsing>
设置为 1。- 将
<SMTPServerPickupDirectory>
设置为本地驱动器上的文件夹。注意
如果使用本地 SMTP 服务器,则不要设置
<SMTPServer>
。 <From>
会设置显示在电子邮件“发件人:”行中的值。 此值是必需的。
配置报表服务器的本地 SMTP 服务
- 在控制面板中,找到打开或关闭 Windows 功能以启动添加角色和功能向导。
- 选择“基于角色或基于功能的安装”,然后选择“下一步” 。
- 选择要在上面安装 Internet Information Server (IIS) 的服务器,然后选择“下一步” 。
- 在“服务器角色”页上选择“下一步” 。
- 在“功能”页上,选择“SMTP 服务器”,然后选择“下一步” 。 如果系统提示添加 SMTP 服务器所需的功能,请选择添加功能。
- 在“Web 服务器角色 (IIS)”页上,选择“下一步” 。
- 在“角色服务”页上,选择“下一步” 。
- 在确认安装选择页上,选择安装。
- 验证“简单邮件传输协议 (SMTP)”windows 服务是否正在服务控制台中运行 。 若要配置本地 SMTP 服务器,则需要使用管理工具下的 IIS 6.0 管理器。
- 在文本编辑器中打开
RSReportServer.config
文件。 - 请验证是否将
<UrlRoot>
设置为报表服务器 URL 地址。 此值是在配置报表服务器时设置的, - 并且应已填充。 如果未设置,则输入报表服务器的 Web 服务 URL 地址。
- 请确保
<SMTPServer>
存在,但为空。 - 将
<SendUsing>
设置为 1。 - 将
<SMTPAuthenticate>
设置为 0。 - 将
<SMTPServerPickupDirectory>
设置到 SMTP 服务拾取文件夹。 默认位置为C:\inetpub\mailroot\Pickup
。 - 将
<From>
设置为有权从 SMTP 服务器发送电子邮件的帐户。 这会设置电子邮件“发件人:”行中显示的值。 - 保存文件。