C# 如何使用ASP.NET访问Outlook邮件?

C# 如何使用ASP.NET访问Outlook邮件?,c#,asp.net,outlook,C#,Asp.net,Outlook,我正在尝试编写一个asp.net(使用c#)应用程序,用于访问我的Outlook邮箱并显示邮件。我在谷歌上搜索过,但找不到有用的信息,请帮忙 您不能通过C#(ASP.NET)连接到Outlook,但可以通过POP3/IMAP连接到邮件服务器以阅读邮件 您必须知道outlook正在用户本地计算机上运行,并且您的ASP.NET应用程序正在某些服务器上运行,并且您的服务器端ASP.NET代码无法使用outlook本地数据 这样做的唯一方法是创建outlook加载项,该加载项将所有邮件导出到ASP.NE

我正在尝试编写一个asp.net(使用c#)应用程序,用于访问我的Outlook邮箱并显示邮件。我在谷歌上搜索过,但找不到有用的信息,请帮忙

您不能通过C#(ASP.NET)连接到Outlook,但可以通过POP3/IMAP连接到邮件服务器以阅读邮件


您必须知道outlook正在用户本地计算机上运行,并且您的ASP.NET应用程序正在某些服务器上运行,并且您的服务器端ASP.NET代码无法使用outlook本地数据


这样做的唯一方法是创建outlook加载项,该加载项将所有邮件导出到ASP.NET应用程序

如果您使用的是Exchange,则可以使用Exchange Web服务来阅读电子邮件


请参见

请务必小心,不要试图使用自动化界面在服务器端访问Outlook。所有MicrosoftOfficeDesktop应用程序都是由交互式用户在一个带有消息泵的进程中运行的,所有同步都是通过UI进行的。当您在ASP.NET这样的多线程环境中运行它们时,会发生可怕的事情。如果幸运的话,应用程序将崩溃

如果运气不好,您可能会遭受数据损坏、不相关代码中的随机崩溃,以及应用程序损坏内存时发生的所有其他事情



如果通过您的网站访问Office应用程序的用户没有单独获得在其桌面上使用该应用程序的许可,您也可能会违反您的许可证。

Outlook as在您的客户端应用程序中?或者你所说的“outlook”是指你的“邮件帐户”?或者可能是已经有web界面的exchange服务器?Outlook通常与web服务器配对。在这些情况下,Outlook仅仅是一个查看客户机(尽管带有数据的本地缓存),而Exchange保存相关数据。为此,请看一看。@gmagana:实际上有多种前景(客户端、web、office等等)。但考虑到他写的“Outlook邮件”,他可能并不是字面意思,要求澄清从来都没有坏处。。。他可能想要邮件(在邮件服务器上),而不是Outlook interop。。。明白了吗?@Jaroslav:嗯,不,只有一种前景。您提到的其他产品有不同的名称,因此是不同的产品。哪个Outlook?Microsoft Office Outlook 2003/2007、Microsoft Outlook 97-2011、Outlook Express 4.0-6.0、Outlook Web Access?这是不正确的,您确实可以使用C#连接到Outlook,请查看其他提到Outlook加载项/互操作的答案。@gmagana:确实,您可以从加载项或通过互操作创建到Outlook的连接,但据我所知,您无法创建从网页到本地Outlook客户端的互操作。我可能错了,但我还没有找到一种方法来做到这一点,除非你在计算机上安装了一个客户端,你可以用URL句柄调用它。我想创建一个网页来访问我的Outlook邮件。并将它们显示在我创建的网页上。@Massimo,然后您必须访问Outlook中使用的邮件服务器,并直接从服务器获取邮件。您不能通过网页直接访问Outlook应用程序。如果你按照我的答案中的链接,你会发现一个库可以帮助你做到这一点。一个很好的技巧是将邮件保存在某种数据库中,因为与邮件服务器的连接需要一些时间。将使用该应用程序的人将有权使用它。应用程序只需要访问我的邮件并显示它们,仅此而已。我看不出会出什么问题。@Massimo:你没有得到关于它在服务器环境中不起作用的部分吗?不要浪费你的时间。如果你喜欢这种事情,有更容易折磨自己的方法。@John:哈哈,我不折磨自己。但我真的很想访问它们:p仅此而已。@Massimo:试图从服务器应用程序(如ASP.NET)使用Office应用程序是在折磨自己。不要这样做。从一个经历了艰辛的人那里学到的。@John:Outlook正在ExchangeServer2007上运行。因此,它在服务器环境中确实可以工作。我正在使用MS Outlook 2003,我认为不可能在MS Outlook 2003中创建加载项?是的,这是可能的:bakula Outlook正在Exchange server 2007上运行。你有一些连接到ES2007的代码吗?不,对不起,Massimo,最好再问一个问题,我相信你会得到一些答案,这就是我正在使用的。谢谢你的回答。我在这里提供了一个简单的代码示例: