gpt4 book ai didi

asp.net - Internet Explorer中的 “send page by email”功能如何选择以电子邮件正文或附件形式发送?

转载 作者:行者123 更新时间:2023-12-03 12:20:16 26 4
gpt4 key购买 nike

当对包含Crystal Reports ASP.Net查看器的应用程序中的页面使用Internet Explorer中的“通过电子邮件发送页面”功能时,它将在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

最佳答案

这可能不是您问题的直接答案,但是
,我建议您的解决方案不要过于依赖浏览器功能,而在您的首选浏览器的 future 版本中可能不支持该浏览器功能,或在支持该浏览器功能方面有所不同。

如果您的Web应用程序对每个特定的报表呈现都支持永久URL之类的内容,则以URL为链接的电子邮件就足够了。

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

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

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

如果上述所有选项都不是的选择,则在某些情况下,我成功地让IE通过发送额外的http header (如http://www.ietf.org/rfc/rfc2183.txt中定义的)来更改其猜测如何处理页面内容的行为
content-disposition: inlinecontent-disposition: attachment
将示例(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");

关于asp.net - Internet Explorer中的 “send page by email”功能如何选择以电子邮件正文或附件形式发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com