加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Internet Explorer中的“通过电子邮件发送页面”功能

发布时间:2020-12-16 00:42:56 所属栏目:asp.Net 来源:网络整理
导读:当您使用Internet Explorer中的“通过电子邮件发送页面”功能,在我们的应用程序中包含Crystal Reports ASP.Net查看器的页面时,它会将Outlook中的电子邮件以网页作为附件,而不是电子邮件的正文。 使用以前版本的框架(v1.1)和关联的Crystal报表查看器,情况
当您使用Internet Explorer中的“通过电子邮件发送页面”功能,在我们的应用程序中包含Crystal Reports ASP.Net查看器的页面时,它会将Outlook中的电子邮件以网页作为附件,而不是电子邮件的正文。

使用以前版本的框架(v1.1)和关联的Crystal报表查看器,情况并非如此。鉴于这些旧版本现在不受支持,我想知道是否有任何方式可以“鼓励”Internet Explorer的“发送页面电子邮件”功能,将我的ASP.Net页面作为正文发送,而不是附件?

作为参考,查看者的来源是简单的:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="GeneralReport.aspx.vb" Inherits="MyApplication.GeneralReportForm"%>
<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web,Version=10.5.3700.0,Culture=neutral,PublicKeyToken=692fbea5521e1304" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title></title>
        <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
        <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
        <LINK href="Styles.css" type="text/css" rel="stylesheet">
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <div id="contentstart">&nbsp;</div>
            <DIV><CR:CRYSTALREPORTVIEWER id="CrystalReportViewer" runat="server" DisplayToolbar="False" SeparatePages="False"
                    HasDrillUpButton="False" EnableDrillDown="False" DisplayGroupTree="False" HasSearchButton="False" HasZoomFactorList="False"
                    HasGotoPageButton="False" Visible="False" Height="50px" Width="350px"></CR:CRYSTALREPORTVIEWER>
            </DIV>
            <br>
            <asp:label id="lblError" runat="server" Width="743px" Font-Size="Larger" ForeColor="Red"></asp:label>
        </form>
    </body>
</HTML>

在代码背后,我们只需要:

Dim rpt As New MyReport()
rpt.SetDataSource(ds)
CrystalReportViewer.ReportSource = rpt
CrystalReportViewer.Visible = True

解决方法

这可能不是您的问题的直接答案,但是
我建议您的解决方案不会依赖于未来版本的首选浏览器可能不是或不同的浏览器功能。

如果您的Web应用程序支持像每个特定报表呈现一样的永久URL,那么具有URL作为链接的电子邮件就足够了。

另一个选择是将您的报告呈现为PDF(或XLS),以获取可以安全附加到您的电子邮件的快照。

另一个选择是不依赖于客户端浏览器的电子邮件功能,而是通过SMTP服务器通过Web应用程序本身发送电子邮件。

Here is an example of how to send an email with an attachment in VB.NET

如果以上所有这些都不是您的选择,在某些情况下,我已经成功推出了IE,通过发送一个额外的http头(http://www.ietf.org/rfc/rfc2183.txt定义)来更改其猜测 – 处理页面内容的行为,

内容处置:内联与内容配置:附件

示例(C#)放在最终报告呈现之前

HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "text/html";
HttpContext.Current.Response.AddHeader("content-disposition","inline; filename=report.htm");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读