C# 有哪些方法可以让.NET代码在电子邮件到达时运行和处理它们?
我的任务是创建某种服务,它可以接收发送到某个电子邮件地址的任何电子邮件,并处理电子邮件的内容(包括二进制附件) 我已获得运行此服务的服务器(Windows server 2008)的完全访问权限,并决定使用.NET framework(3.5)编写解决方案 现在我在想我可以用不同的方法来做这件事。由于我在以编程方式处理电子邮件方面不是很有经验,因此我想到的第一个解决方案是创建一个电子邮件客户端,该客户端将定期轮询现有电子邮件服务器以获取传入的电子邮件(使用POP3协议)并对其进行处理。但还有其他方法可以做到这一点 一种可能是使用IMAP保持与邮件服务器的连接,并在电子邮件到达时立即获取电子邮件(响应速度更快,但我认为IMAP协议更难实现)。接下来的问题是:在哪里可以找到支持POP3或IMAP协议的可靠电子邮件库 另一种可能是以某种方式配置电子邮件服务器,将发送到特定地址的电子邮件直接通过管道传输到我的二进制代码中(我在Linux服务器上看到过这种情况)。不过,我不知道该怎么做 我能想到的最后一个方法是在自己的地址上创建一个虚拟电子邮件服务器,在电子邮件到达时直接处理它,但对我来说这似乎是个坏主意 有人有这方面的经验吗?我可以想象,必须为票证支持系统编写电子邮件处理程序并不少见,除此之外,我还需要处理附件C# 有哪些方法可以让.NET代码在电子邮件到达时运行和处理它们?,c#,.net,email,C#,.net,Email,我的任务是创建某种服务,它可以接收发送到某个电子邮件地址的任何电子邮件,并处理电子邮件的内容(包括二进制附件) 我已获得运行此服务的服务器(Windows server 2008)的完全访问权限,并决定使用.NET framework(3.5)编写解决方案 现在我在想我可以用不同的方法来做这件事。由于我在以编程方式处理电子邮件方面不是很有经验,因此我想到的第一个解决方案是创建一个电子邮件客户端,该客户端将定期轮询现有电子邮件服务器以获取传入的电子邮件(使用POP3协议)并对其进行处理。但还有其他
如果有任何提示和提示,我将不胜感激。我过去曾使用webdav和c#定期访问exchange服务器并处理电子邮件
这已经非常有效了,如果需要,我可能会再次使用该方法。中的一些.net组件可能有助于满足您的需求 该应用程序每x分钟轮询一个POP3邮件服务器,并在队列中处理消息,并在处理每个消息时删除它们
QuikSoft工具还提供了解析电子邮件的方法,以从每条消息中获取内容。与许多事情一样,这取决于具体情况。问自己以下问题:
如果您打算使用POP3解决方案(看起来是这样),那么请阅读相关问题“”和“”。接收电子邮件不是最难的部分,解析和提取附件是最难的部分 如果有人对商业产品感兴趣,请查看Mail.dll。 它支持您提到的空闲命令 Mail.dll包括POP3、IMAP客户端和功能强大的MIME解析器:
using(Imap imap = new Imap())
{
imap.Connect("imap.server.com");
imap.Login("user", "password");
imap.SelectInbox();
List<long> uidList = imap.SearchFlag(Flag.Unseen);
foreach (long uid in uidList)
{
IMail mail = new MailBuilder()
.CreateFromEml(imap.GetMessageByUID(uid));
Console.WriteLine(mail.Subject);
}
imap.Close(true);
}
使用(Imap Imap=new Imap())
{
imap.Connect(“imap.server.com”);
imap.Login(“用户”、“密码”);
imap.SelectInbox();
List uidList=imap.SearchFlag(Flag.Unseen);
foreach(uidList中的长uid)
{
IMail mail=new MailBuilder()
.CreateFromEml(imap.GetMessageByUID(uid));
Console.WriteLine(mail.Subject);
}
imap.Close(真);
}
请注意,这是我创建的商业产品
你可以从下载,我找到了这个:我将使用它作为起点。不过,我还是非常感谢其他选择。类似的问题是:一篇文章的副本可能会比这篇文章晚5个月吗?如果有帖子的话,应该是这样的:–如果这对这篇文章的未来读者有什么帮助的话,我最终使用了AfterLogic(www.AfterLogic.com)@Blixt:see提供的MailBee.NET IMAP。此外,“可能重复”的评论现在是自动生成的,我对此并不感到兴奋。没有真正的延迟要求,尽管在它们到达时处理它们会更好,以尽可能分散CPU使用。这将不是一个能够获得很大吞吐量的服务器。会有一些使用高峰(这是为了比赛),但在那之后,使用将非常低。每封邮件的容量将高达1MB(其中包括一段简短的移动视频)。要与之集成的电子邮件系统尚未确定,但我认为它不会是Exchange。最后,我打算通过尽可能多的代码重用来实现这一点,以便于使用指向库的指针。