繁体   English   中英

在ASP.net网页上显示交换邮件的最佳方法是什么?

[英]What is the best way to display an exchange mail message on an ASP.net web page?

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

[2013-11-04 18:00]: Problem solved
[2013-11-04 18:00]: Called User
[2013-11-04 14:00]: Mail Received

为此,我将不得不向支持邮箱查询新邮件。 收到新消息时,将创建“已收到邮件”操作。 “已收到邮件”条目应该是可单击的,以便支持用户可以看到此消息的内容。

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

使用Exchange Webservices托管API 2.0,我可以找到此消息及其正文,但是该邮件正文可以具有嵌入式图像和其他布局。

选项:

  1. 在网页上显示消息,尝试以最佳方式呈现电子邮件。
    ->有没有免费的插件可以做到这一点? 喜欢的东西, 却可以在网页中使用?

  2. 使用Outlook显示此电子邮件。

  3. 1&2组合在一起。显示预览文本消息,然后单击以使用Outlook查看整个消息。

由于支持用户将在其计算机上安装Outlook 2010或更高版本,因此第三个选项似乎是一个合理的选择,但是如何在Outlook中显示此消息?

@{
    HttpContext.Current.Response.AddHeader("Content-disposition", "inline;filename=message.msg");
    HttpContext.Current.Response.ContentType = "application/vnd.ms-outlook";
}
@(new HtmlString(ViewBag.Body))

显然不起作用..msg文件似乎是二进制的。 我需要一个API吗?

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

  1. 每次您打开一条消息时,都必须单击“打开”以查看此消息。
    ->我可以在现代浏览器(主要是IE10和IE11)中防止这种情况吗?
    ->还是有“内联Outlook查看器”可用?
  2. 当此支持用户使用其外表回答此消息时,将“从”他的帐户发送该消息。 此发送的消息将没有任何痕迹!
    ->谁能想到解决方法?

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

修补不同的身体类型和检索方法。 此处的信息:

http://msdn.microsoft.com/zh-CN/library/ee217562(v=exchg.80).aspx

看看它们是否返回相对容易显示的内容,无论是解析HTML正文还是在浏览器中显示RTF正文。 我并没有为此烦恼,也没有方便的Exchange服务器,否则我会自己检查一下。 如果在发送邮件时Exchange并未咀嚼HTML,则您可以解析src =“ cid:contentIdOfAttachment”并将其替换为指向附件的正确链接,以在浏览器中显示,但是Exchange可以HTML和CSS的有趣之处。

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

如果我做对了,您将其复制到一个单独的邮箱,然后从该邮箱“复制”到系统外部,因此答复将直接发送给最终用户,并跳过中央支持邮箱。 通过将“发件人”更改为中央支持邮箱,您可以通过更改消息的发送/下载之前的方式来规避此问题。 当支持用户做出响应时,它会返回到中央支持邮箱,您可以在该邮箱中进行辅助同步操作(甚至是用于获取传入邮件的同一个同步操作),然后将“收件人”更改为“从”或“从”发送给预期的收件人中央支持邮箱,然后使用UpdateItems将其发送出去并将其保存到“已发送”文件夹中。 它不漂亮,但应该可以。 但是,那只是我的头上的事,因此很容易找到更好的解决方案。 而且我正在对您正在使用的系统进行一些假设,所以也许我有些不对劲。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM