C# 通过Windows Live Messenger跟踪邮件

C# 通过Windows Live Messenger跟踪邮件,c#,.net,windows-live-messenger,C#,.net,Windows Live Messenger,我想跟踪通过Windows Live Messenger发送和接收的邮件。然后,我想将这些消息整理到一个数据库中(不在本问题的范围内) 问题是我应该如何以及在哪里跟踪这些消息。最简单的方法是强制所有客户端保存历史文件并读取这些文件,但这并不是我真正想要的解决方案。有没有一种方法可以从运行在同一域中的服务器跟踪它们,我读过一些关于Windows Communicator的文章,我也看到很多人在聊天,但我希望有人已经解决了这个问题:) 我想用C#.NET 3.5来实现这一点,不过有两个想法 1.首先

我想跟踪通过Windows Live Messenger发送和接收的邮件。然后,我想将这些消息整理到一个数据库中(不在本问题的范围内)

问题是我应该如何以及在哪里跟踪这些消息。最简单的方法是强制所有客户端保存历史文件并读取这些文件,但这并不是我真正想要的解决方案。有没有一种方法可以从运行在同一域中的服务器跟踪它们,我读过一些关于Windows Communicator的文章,我也看到很多人在聊天,但我希望有人已经解决了这个问题:)

我想用C#.NET 3.5来实现这一点,不过有两个想法
1.首先,标准的MSN协议是纯文本的(据我所知),因此您可以在防火墙上拦截消息,然后将它们放入数据库中并在那里进行关联。

2.如果这是在一个组织中,您可以使用Office Communicator,它是MSN的“公司”版本,并且已经内置了该功能。然后,您可以通过他们的SDK进入并获取相关数据。

这里有两个可能可行的想法

第一个是最简单的,但是如果用户不想登录,可以很容易地避免。它将通过MSN使用。有了MSN Plus,您就有了一个API,可以从任何聊天窗口获取所有消息。。。还有更多。当然,如果用户不是您,用户只需卸载Msn Plus,您的程序就不会记录任何数据

第二个想法是,如果你有一个网络,你需要检查所有的Msn对话。如果您使用,您可以看到对话没有加密(上次我这么做的时候),您可以检查端口和协议,只需从网络获取数据


希望它能为您提供一条通往所需的道路。

查看MSNPSharp。它是一个.NET msn库。它非常强大,允许您从多个位置登录。因此,您可以登录并收听在给定帐户上发生的其他对话。 它的使用非常简单。下载完整的源代码,有一个示例应用程序详细演示了它的用法


我设法找到了两种方法来实现这一点,尽管这两种方法都不是真正的编程解决方案,因此可能不会吸引这些观众

  • 使用Jabber网关在Jabber客户端和其他IM网络之间设置转发。通过jabber服务器,启用jabber的客户端和jabber服务器之间的通信流。Jabber服务器然后将其转换为目标网络协议并转发消息。同样,来自外部IM网络的消息由Jabber服务器路由和翻译。例如PSI IceWarp Merak MSN

  • 利用从网络上的消息传递客户端截取消息。您需要使用主机文件或本地DNS规则来说服您的本地PC,即Messenger.hotmail.com实际上位于192.168.0.59,而不是Microsoft

  • 希望它能帮助其他想做同样事情的人