Reporting services SSRS 2008-以电子邮件形式发送报告

Reporting services SSRS 2008-以电子邮件形式发送报告,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我想做的是将SSRS2008报告呈现为HTML(实际上是MHTML),并将其作为邮件正文发送 有人这样做过吗?我想我已经差不多明白了,但我似乎有一个编码问题。电子邮件显示为某种base64编码 如下所示:MIME版本:1.0内容类型:多部分/相关; boundary=“---=\u NextPart\u 01C35DB7.4B204430”X-MSSQLRS-ProducerVersion: V10.0.2531.0这是MIME格式的多部分消息。 ------=\u NextPart\u 01C

我想做的是将SSRS2008报告呈现为HTML(实际上是MHTML),并将其作为邮件正文发送

有人这样做过吗?我想我已经差不多明白了,但我似乎有一个编码问题。电子邮件显示为某种base64编码

如下所示:MIME版本:1.0内容类型:多部分/相关; boundary=“---=\u NextPart\u 01C35DB7.4B204430”X-MSSQLRS-ProducerVersion: V10.0.2531.0这是MIME格式的多部分消息。 ------=\u NextPart\u 01C35DB7.4B204430内容ID:内容配置:内联; filename=“FollowUpNotification”内容类型:text/html; name=“FollowUpNotification”;charset=“utf-8”内容传输编码:base64 PcFet0NuWvFieHutuwGuFvCtEldictily 9xMmVl0RurcBive1 MidQumDegVHJHbNp

你知道我遗漏了什么吗

以下是一段代码片段:

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;
myMail.BodyEncoding=System.Text.Encoding.UTF8;
myMail.IsBodyHtml=true;
WebClient客户端=新的WebClient();
System.Net.NetworkCredential重新验证信息=
新的System.Net.NetworkCredential(@“用户名”,“密码”);
client.Credentials=重新验证信息;
client.Encoding=System.Text.Encoding.UTF8;
string messageBody=client.DownloadString(
“http://&rs%3aFormat=MHTML&Parameter=“+Parameter”);
myMail.Body=messageBody;

System.Net.Mail不支持在MHTML显示为消息的位置发送MHTML电子邮件(请参见有人在的页面)

您看到代码的原因是messageBody需要HTML,而代码正在向其提供一个MHTML文档。字符串不会自动取消编码

以下是一些选项:

  • 将格式参数从MHTML更改为HTML3.2或HTML4.0。SQL Reporting Services将为您提供原始HTML
  • 将MHTML作为附件而不是内联发送
  • 使用SSRS内置的电子邮件订阅功能,如上面评论中建议的OMG小马
  • 将MHTML内联,如中所述。你可能会想买一个图书馆来帮助你

  • System.Net.Mail不支持在MHTML显示为消息的位置发送MHTML电子邮件(请参阅此页面中某人所在的位置)

    您看到代码的原因是messageBody需要HTML,而代码正在向其提供一个MHTML文档。字符串不会自动取消编码

    以下是一些选项:

  • 将格式参数从MHTML更改为HTML3.2或HTML4.0。SQL Reporting Services将为您提供原始HTML
  • 将MHTML作为附件而不是内联发送
  • 使用SSRS内置的电子邮件订阅功能,如上面评论中建议的OMG小马
  • 将MHTML内联,如中所述。你可能会想买一个图书馆来帮助你

  • 我喜欢Nate的回答,并且我能够使用上面第4点中的链接中的以下建议为HTML4.0工作,所以这里是任何在这里闲逛的人的捷径。不过请注意,我使用SMTP发送电子邮件,图像被删除,因为它们无法链接回我的SSRS服务器

    我没有一个将.mht内容作为电子邮件正文发送的解决方案,但我确实找到了如何将SQLServer2005报表导出为纯旧HTML格式的方法。我最初也被Render方法的“format”参数的糟糕文档所抛弃。事实证明,如果您传入“HTML4.0”,SSRS将为您生成HTML


    这是上面引用的Voot的功劳。

    我喜欢Nate的答案,并且我能够使用上面第4点链接中的以下建议使HTML 4.0正常工作,因此这里是任何在这里闲逛的人的捷径。不过请注意,我使用SMTP发送电子邮件,图像被删除,因为它们无法链接回我的SSRS服务器

    我没有一个将.mht内容作为电子邮件正文发送的解决方案,但我确实找到了如何将SQLServer2005报表导出为纯旧HTML格式的方法。我最初也被Render方法的“format”参数的糟糕文档所抛弃。事实证明,如果您传入“HTML4.0”,SSRS将为您生成HTML


    信用属于上面引用的Voot。

    检查SQL Server版本-您可以在订阅中使用电子邮件机制,而不是自己编写电子邮件。我需要报告作为电子邮件的主体。据我所知,订阅是做不到的。只是一点更新。。。我的问题是MHTML(M代表MIME)我需要一种方法将MHTML转换为HTML或强制电子邮件处理MHTML。请检查SQL Server版本-您可以在订阅中使用电子邮件机制,而不是自己编写电子邮件。我需要将报告作为电子邮件的主体。据我所知,订阅是做不到的。只是一点更新。。。我的问题是MHTML(M代表MIME),我需要一种方法将MHTML转换为HTML或强制电子邮件处理MHTML。您的回答为我指明了正确的方向。事实证明,我需要使用ReportExecution2005.asmx,而不是使用简单的客户端来获取HTML参数。事实证明,我需要使用ReportExecution2005.asmx,而不是使用简单的客户端来获取HTML参数。