我想要做的是将SSRS 2008报告呈现为HTML(实际上是MHTML)并将其作为正文发送到电子邮件中。
有人这样做过吗?我差不多了(我想),但我似乎有编码问题。电子邮件显示为看起来像某种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”; charset =“utf-8”Content-Transfer-Encoding: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;
答案 0 :(得分:3)
System.Net.Mail不支持在MHTML显示为消息的情况下发送MHTML电子邮件(请参阅此页面,其中某人为attempting to send MHTML as email)。
您看到代码的原因是messageBody期待HTML,而代码正在为它提供MHTML文档。该字符串不会自动取消编码。
以下是一些选项:
答案 1 :(得分:1)
我喜欢Nate的回答,并且我能够使用上面第4点中的链接中的建议为HTML 4.0工作,所以这里是对任何在这里游荡的人的捷径。但请注意,我使用SMTP发送电子邮件并删除图像,因为它们无法链接回我的SSRS服务器。
我没有将.mht内容作为电子邮件正文发送的解决方案,但我确实弄清楚如何将SQL Server 2005报告导出为普通的旧HTML格式。我也被Render方法的“格式”参数的糟糕文档抛弃了。事实证明,如果您传入“HTML4.0”,SSRS将为您生成HTML。
Credit属于上面引用的Voot。