[英]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,我可以找到此消息及其正文,但是该邮件正文可以具有嵌入式图像和其他布局。
选项:
在网页上显示消息,尝试以最佳方式呈现电子邮件。
->有没有免费的插件可以做到这一点? 喜欢的东西, 这却可以在网页中使用?
使用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吗?
但是即使这样做有效,我也会遇到以下问题:
我们正在使用内部部署的Exchange 2010 SP3服务器,该服务器应在明年的某个时候迁移到Exchange Online。 应用程序使用MVC 5.0框架在ASP.NET 4.5上运行。
使用此API可以直接从Exchange服务器以.msg文件下载邮件的解决方案
修补不同的身体类型和检索方法。 此处的信息:
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.