0

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

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

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

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

使用 Exchange Webservices Managed API 2.0 我可以找到此邮件和他的正文,但邮件正文可以包含内联图像和其他布局。

选项:

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

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

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

由于支持用户将在他的机器上安装 Outlook 2010 或更高版本,第 3 个选项似乎是一个合乎逻辑的选择,但我如何在 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. 当此支持用户使用他的 Outlook 回答此消息时,此消息将“从”他的帐户发送。这条发送的消息不会有任何痕迹!
    -> 任何人都可以想办法解决这个问题吗?

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

4

2 回答 2

1

使用此 API直接从 Exchange 服务器下载消息作为 .msg 文件可能是一种解决方案

于 2013-11-15T06:52:14.687 回答
0

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

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

看看它们中的任何一个是否返回了相对容易显示的内容,无论是解析 HTML 正文还是在浏览器中显示 RTF 正文。我还没有搞砸这么多,也没有手边的 Exchange 服务器,否则我会检查自己。如果 Exchange 在发送消息时没有处理 HTML,您可以解析 src="cid:contentIdOfAttachment" 并将其替换为附件的正确链接以在浏览器中显示,但 Exchange 可以这样做HTML 和 CSS 的有趣之处。

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

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

于 2013-11-16T13:25:12.240 回答