SSRS 2008 - 以电子邮件的形式发送报告
我想要做的是将SSRS 2008报告呈现为HTML(实际上是MHTML),并将其作为邮件正文发送。SSRS 2008 - 以电子邮件的形式发送报告
有没有人这样做?我几乎可以得到它(我认为),但我似乎有一个编码问题。电子邮件显示为某种base64编码。
像这样:MIME-Version:1.0 Content-Type:multipart/related; boundary =“---- = _ NextPart_01C35DB7.4B204430”X-MSSQLRS-ProducerVersion: V10.0.2531.0这是一个MIME格式的多部分消息。 ------ = _ NextPart_01C35DB7.4B204430 Content-ID:Content-Disposition:inline; filename =“FollowUpNotification”Content-Type:text/html; name =“FollowUpNotification”;字符集= “utf-8” 内容传输编码:的base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNp ...
对我失去了我的任何想法?
下面的代码片段:
myMail.BodyEncoding = System.Text.Encoding.UTF8;
myMail.IsBodyHtml = true;
WebClient client = new WebClient();
System.Net.NetworkCredential repAuthenticationInfo =
new System.Net.NetworkCredential(@"username", @"password");
client.Credentials = repAuthenticationInfo;
client.Encoding = System.Text.Encoding.UTF8;
string messageBody = client.DownloadString(
"http://<<reportserver>>&rs%3aFormat=MHTML&Parameter=" + Parameter);
myMail.Body = messageBody;
System.Net.Mail不支持发送电子邮件MHTML在MHTML出现的消息(见本页某个人在哪里attempting to send MHTML as email)。
您看到代码的原因是messageBody期待HTML,而代码正在为它提供一个MHTML文档。该字符串不会自动解码。
这里有一些选择:
- 变化从MHTML格式参数HTML3.2或HTML4.0。然后,SQL Reporting Services将为您提供RAW HTML。
- 发送MHTML作为附件而不是内联。
- 使用SSRS的内置电子邮件订阅功能作为OMG小马在上面的评论中建议。
- 如在this question中讨论的那样将MHTML内联。你可能会想要购买一个图书馆来帮助解决这个问题。
你的回答指向了我正确的方向。原来,我需要使用ReportExecution2005.asmx,而不是使用简单的客户端来获取HTML参数。 – Mozy 2010-05-11 00:09:00
我喜欢Nate的答案,并且能够使用上面第4点中链接的建议获得HTML 4.0的工作,所以在这里它可以作为任何人在这里漫游的捷径。尽管如此,我使用SMTP发送电子邮件,因为图像无法链接回我的SSRS服务器,因此图像被丢弃。
我没有发送.mht内容作为电子邮件正文的解决方案,但我弄清楚了如何将SQL Server 2005报告导出为普通的旧HTML格式。我最初也被Render方法的“format”参数的糟糕文档抛弃了。事实证明,如果您通过“HTML4.0”,SSRS将为您生成HTML。
Credit属于上面引用的Voot。
检查SQL Server版本 - 您可以在订阅中使用电子邮件机制,而不是自己编写电子邮件。 – 2010-05-07 17:57:32
我需要报告成为电子邮件的主体。据我所知,订阅无法完成。 – Mozy 2010-05-07 21:13:56
只是稍微更新... 我的问题是MHTML(M为MIME)我需要一种方法将MHTML转换为HTML或强制电子邮件来处理MHTML。 – Mozy 2010-05-07 21:19:15