SSRS 2008 R2邮件发送配置:能否自定义邮件正文内容?
在SSRS 2008 R2中修改邮件正文内容的方法
没问题!在SSRS 2008 R2里是完全可以修改邮件正文内容的,我给你整理了几种实用的方法,一步步来:
1. 全局配置默认邮件模板(通过RSReportServer.config)
你正在编辑的RSreportserver.config文件,其实支持自定义全局的邮件正文模板,所有订阅默认都会用这个模板。操作步骤如下:
- 找到配置文件路径:通常在
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer下,根据你的SQL Server实例名调整路径 - 打开文件后,在
<RSEmailDPConfiguration>节点内添加<MailBody>配置块,示例如下:
<RSEmailDPConfiguration> <SMTPServer>mySMTPServer.Adventure-Works.com</SMTPServer> <SMTPServerPort></SMTPServerPort> <SMTPAccountName></SMTPAccountName> <SMTPConnectionTimeout></SMTPConnectionTimeout> <!-- 自定义全局邮件正文模板 --> <MailBody> <DefaultBody> <HTML> <![CDATA[ <p>您好,这是您订阅的报表:<b>{ReportName}</b></p> <p>报表生成时间:{ExecutionTime}</p> <p>点击查看在线报表:<a href="{ReportURL}">{ReportURL}</a></p> ]]> </HTML> </DefaultBody> </MailBody> <!-- 可选:设置默认的报表附件格式 --> <DefaultRenderingExtension>PDF</DefaultRenderingExtension> </RSEmailDPConfiguration>
这里的{ReportName}、{ExecutionTime}、{ReportURL}是SSRS内置的占位符,会自动替换成对应报表的实际信息。如果需要纯文本格式,把<HTML>换成<PlainText>即可。
2. 给单个订阅设置专属正文
如果只是某些特定订阅需要不同的正文,不用改全局配置,在创建/编辑订阅时就能设置:
- 选择“电子邮件”作为传递方式后,往下找“正文”输入区域(部分版本需要勾选“自定义正文”选项才会显示)
- 直接输入你想要的文本,同样可以用内置占位符,比如
{ReportName}、{ExecutionTime},灵活替换内容
3. 注意事项
- 修改完
RSreportserver.config后,一定要重启SQL Server Reporting Services服务,配置才会生效 - 如果需要更复杂的动态正文(比如嵌入报表数据片段、根据报表内容调整正文),就得开发自定义邮件传递扩展了,这需要用到.NET代码,适合有开发能力的场景
- 确认你的SMTP服务器支持发送HTML格式邮件,如果服务器限制,用纯文本模板更稳妥
内容的提问来源于stack exchange,提问作者Alexandre Bastos
相关产品推荐
相关产品推荐

