C# 在ASP.net网页上显示exchange邮件的最佳方式是什么?

C# 在ASP.net网页上显示exchange邮件的最佳方式是什么?,c#,asp.net,jquery-plugins,outlook,exchangewebservices,C#,Asp.net,Jquery Plugins,Outlook,Exchangewebservices,我有一个在ASP.net网站上列出的项目上发生的操作列表。这些操作记录在链接到该项的简单sql表中。 i、 e: 为此,我必须查询支持邮箱中的新邮件消息。收到新邮件时,将创建“邮件已收到”操作。“mail Received”(已收到邮件)条目应可单击,以便支持用户可以查看此邮件的内容 问题:如何向支持用户显示此消息 使用ExchangeWebservicesManagedAPI2.0,我可以找到此消息及其正文,但消息正文可以有内联图像和其他布局 选项: 在网页上显示邮件尝试以最佳方式呈现邮件。

我有一个在ASP.net网站上列出的项目上发生的操作列表。这些操作记录在链接到该项的简单sql表中。 i、 e:

为此,我必须查询支持邮箱中的新邮件消息。收到新邮件时,将创建“邮件已收到”操作。“mail Received”(已收到邮件)条目应可单击,以便支持用户可以查看此邮件的内容

问题:如何向支持用户显示此消息

使用ExchangeWebservicesManagedAPI2.0,我可以找到此消息及其正文,但消息正文可以有内联图像和其他布局

选项:

  • 在网页上显示邮件尝试以最佳方式呈现邮件。
    ->有没有免费的插件可以做到这一点?类似但可以在网页中使用的内容?

  • 使用Outlook显示此电子邮件

  • 1和2合并。。显示预览纯文本邮件,然后单击以使用outlook查看整个邮件
  • 由于支持用户将在其计算机上安装Outlook 2010或更高版本,因此第三个选项似乎是一个合理的选择,但如何在Outlook中显示此消息

    显然不行。。.msg文件似乎是二进制文件。我需要一个API吗

    但即使这样,我也会遇到以下问题:

  • 每次打开邮件时,您都必须单击“打开”以查看此邮件。
    ->我可以在现代浏览器(主要是IE10和IE11)中防止这种情况吗?
    ->或者是否有“内置outlook查看器”可用
  • 当此支持用户使用outlook回答此消息时,此消息将“从”其帐户发送。将不会有此已发送消息的跟踪
    ->有人能想出一个解决这个问题的办法吗

  • 我们使用的是内部部署的Exchange 2010 SP3服务器,应该在明年某个时候迁移到Exchange Online。应用程序正在ASP.NET 4.5上运行,使用MVC 5.0框架。

    使用此API修补不同的主体类型和检索方法可能是一个解决方案。此处的信息:

    查看它们是否返回了相对容易显示的内容,无论是解析HTML正文还是在浏览器中显示RTF正文。我还没玩这么多,手头也没有Exchange服务器,否则我会自己检查一下。如果Exchange在发送邮件时没有仔细阅读HTML,您可能可以解析出src=“cid:contentIdOfAttachment”,并将其替换为指向附件的适当链接,以便在浏览器中显示,但Exchange可以对HTML和CSS做一些有趣的事

    为了澄清,您所说的“支持用户”是指支持员工(即技术支持)还是正在接受支持并检查其票证状态的人员?如果要在Outlook中显示和/或回复邮件,此人将访问单个支持邮箱(可能是公用文件夹),还是将邮件转发/复制到此人的个人邮箱


    如果我没有弄错,您将把它复制到一个单独的邮箱,然后从那里它就“在”系统之外,所以回复会直接发送给最终用户,并跳过中央支持邮箱。您可以在发送/下载邮件之前通过将“发件人”更改为中央支持邮箱来更改邮件,从而绕过此问题。当支持用户响应时,它会返回到中央支持邮箱,在那里您可以让辅助同步操作(甚至是提取传入邮件的同步操作)对其进行处理,将to/from更改为从中央支持邮箱发送到目标收件人,然后使用UpdateItems将其发送并保存到Sent文件夹。这并不漂亮,但应该是可能的。这是我脑子里想不到的,所以很容易就会有更好的解决办法。我对您正在使用的系统进行了一些假设,因此可能我有点做错了。

    谢谢您的建议。此API涵盖了在outlook中显示邮件的可能性。。但我上面的两个问题仍然存在。如何防止我的用户以他们自己的名义回复&如何在没有额外“打开”点击的情况下强制显示?
    [2013-11-04 18:00]: Problem solved
    [2013-11-04 18:00]: Called User
    [2013-11-04 14:00]: Mail Received
    
    @{
        HttpContext.Current.Response.AddHeader("Content-disposition", "inline;filename=message.msg");
        HttpContext.Current.Response.ContentType = "application/vnd.ms-outlook";
    }
    @(new HtmlString(ViewBag.Body))