针对电子邮件传递配置报表服务器(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 (配置 CoClass)。
报表服务器服务帐户必须对 SMTP 服务器拥有权限才能发送邮件。
电子邮件传递扩展插件在电子邮件附件中使用 UTF-8 编码。 您无法修改此编码;HTML 呈现扩展插件仅支持 UTF-8。
注意
默认电子邮件传递扩展插件不支持给待发邮件进行数字签名或加密。
为本地或远程的 SMTP 服务配置报表服务器
可以使用本地 SMTP 服务或远程 SMTP 服务器或转发器来支持电子邮件传递。 如果具有现有远程 SMTP 服务器的访问权限,则应该考虑使用该服务器。 若没有可用的 SMTP 服务器或随后由于计算机连接失败而遇到报表传递错误,则应该进行切换以使用本地 SMTP 服务。 有关如何为本地或远程服务配置报表服务器的详细信息,将稍后在本主题中进一步说明。
为电子邮件传递设置配置选项
必须先设置确定使用哪一个 SMTP 服务器的配置值,才能使用报表服务器电子邮件传递。
若要针对电子邮件传递配置报表服务器,请执行下列操作:
如果要仅指定一个 SMTP 服务器和一个具有发送电子邮件权限的用户帐户,则使用 Reporting Services 配置管理器。 以下是配置报表服务器电子邮件传递扩展插件所需的最低设置。 有关详细信息,请参阅电子邮件设置 - Configuration Manager (SSRS 本机模式) 和Reporting Services中的电子邮件传递。
(可选)使用文本编辑器在 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 服务器尝试将报表传递给该用户时,报表传递会失败。
若要解决该问题,可以修改允许用户在“收件人:” 字段中输入名称的配置设置:
使用文本编辑器打开 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。
“” 指定如何将报表服务器连接到远程 SMTP 服务器。 默认值为 0(或不进行身份验证)。 这种情况下,将通过匿名访问创建连接。 报表服务器和 SMTP 服务器可能需要成为同一域的成员,这取决于域配置。
若要向受限制的通讯组列表发送电子邮件(例如,只接受经过身份验证的帐户发来的邮件的通讯组列表),则将 “SMTPAuthenticate” 设置为 “2”。
本地 SMTP 服务的配置选项
若要测试报表服务器电子邮件传递或解决所遇到的疑难问题,则配置本地 SMTP 服务会很有用。 默认情况下,不启用本地 SMTP 服务。 有关如何启用它的说明,请参阅为电子邮件传递配置报表服务器 (SSRS Configuration Manager) 和电子邮件设置 - Configuration Manager (SSRS 本机模式) 。
报表服务器与本地 SMTP 服务器或转发器之间的连接是由下列配置设置决定的:
SendUsing
设置为 1。将SMTPServerPickupDirectory 设置为本地驱动器中的文件夹。
注意
如果使用的是本地 SMTP 服务器,请确保不要设置
SMTPServer
。From
设置显示在电子邮件的“发件人:”行中的值 。 此值是必需的。
使用 Reporting Services 配置管理器配置报表服务器电子邮件
请验证报表服务器 Windows 服务是否对 SMTP 服务器拥有
Send As
权限。启动 Reporting Services 配置管理器,然后连接到报表服务器实例。
在“电子邮件设置”页上,输入 SMTP 服务器的名称。 此值可以是 IP 地址、企业 Intranet 上计算机的 UNC 名称或者完全限定域名。
在 “发件人地址”中,输入有权从 SMTP 服务器发送电子邮件的帐户的名称。
单击“应用” 。
配置报表服务器的远程 SMTP 服务
请验证报表服务器 Windows 服务是否对 SMTP 服务器拥有
Send As
权限。在文本编辑器中打开 RSReportServer.config 文件。
验证 是否 <
UrlRoot
> 设置为报表服务器 URL 地址。 此值是在您配置报表服务器时设置的,应该已经填写。 如果未设置此值,则请键入报表服务器 URL 地址。在“传递”部分中,找到 <
ReportServerEmail
>。在 <
SMTPServer
>中,键入 SMTP 服务器的名称。 此值可以是 IP 地址、企业 Intranet 上计算机的 UNC 名称或者完全限定域名。验证 是否 <
SendUsing
> 设置为 2。 如果将其设置为其他值,则报表服务器无法配置为使用远程 SMTP 服务。在 <
From
>中,键入有权从 SMTP 服务器发送电子邮件的帐户的名称。保存文件。
报表服务器将自动使用新的设置;不需要重新启动该服务。 您可以指定其他 SMTP 设置,以进一步配置如何将 SMTP 服务器用于报表服务器电子邮件传递。 有关详细信息,请参阅在 SQL Server 联机丛书中为电子邮件传递配置报表服务器和 RSReportServer 配置文件。
配置报表服务器的本地 SMTP 服务
在“控制面板”中,单击“添加或删除程序”。
单击 “添加/删除 Windows 组件” 启动 Windows 组件向导。
选择 “应用程序服务器” ,然后单击 “详细信息”。
选择 “Internet 信息服务 (IIS)” ,然后单击 “详细信息”。
选中 “SMTP 服务” 复选框,然后单击 “确定”。
在 Windows 组件向导中,单击 “下一步”。 单击“完成”。
验证服务是否正在 “服务” 控制台上运行。
在文本编辑器中打开 RSReportServer.config 文件。
请验证是否将
<UrlRoot>
设置为报表服务器 URL 地址。 此值是在您配置报表服务器时设置的,应该已经填写。 如果未设置此值,则请键入报表服务器 URL 地址。在“传递”部分中,查找
<ReportServerEmail>.
。在
<SMTPServer>
中,清除此设置的所有值,但不要删除标记。将
<SendUsing>
设置为 1。 如果将其设置为其他值,则无法将报表服务器配置为使用本地 SMTP 服务。将
<SMTPServerPickupDirectory>
设置为本地驱动器上的文件夹。将
<From>
设置为有权从 SMTP 服务器发送电子邮件的帐户。保存文件。