处理传入的电子邮件
如何以编程方式读取.NET中的传入电子邮件。我需要一种方法在POP服务器上获取电子邮件的内容(在本例中为XML),并将其读入我的应用程序中。我可以作为我的web服务器一个 后台任务 过程中的电子邮件运行处理传入的电子邮件
- .NET代码:
理想的情况下,这可以通过来解决。
- 可以将电子邮件的内容 发布到我的网络服务器的服务。
虽然我接受其他选项。
编辑:从“无答案”复制:
目前,我们正在考虑使用 电子邮件帐户我们的托管公司 提供。
我们自己的邮件服务器可能是 是一个选项,但它的东西是 我们需要联系主机。
我们实际上只是实施了这样的事情。
我们处理电子邮件的内容并通过Web服务将数据推送到我们的CRM中。我们使用c#.net 3.5
要处理邮件,我们使用IMap。 CodeProject上有几个.net客户端库。我认为我们使用了LumiSoft。
我们试过WebDav,但没有多少运气。这给我们留下了Pop3或IMap。 IMap支持我们需要的文件夹,所以我们就这样做了。如果您的服务器不支持IMap,我相信用POP3做同样的事情会很容易。
基本上我们每隔一小时连接一次Exchange服务器,并下拉任何新邮件并处理它们。 到目前为止它运作良好。
编辑:我们还使用SharpMimeTools将原始电子邮件转换为更有用的格式。
有很多选择,如果你有一个服务总线到您的处置它主要是一个pop3适配器。
或者你可以使用pop3 api(quiksoft的easymail是一个不错的选择)。 它也有一个伟大的产品处理反弹。
阅读所有SMTP邮件。如果你拥有邮件服务器,根据服务器的类型有其他的方式来获得消息,有时定制的Apis和插件,或文件系统。你有自己的邮件服务器吗? 你使用哪个邮件服务器?
如果可能的话,我不会选择POP协议,它有一些限制,例如只有一个文件夹,“获取/读取”消息会从文件夹中删除消息(这意味着读取消息的一个过程) 和其他东西。取决于您需要分析的邮件数量可能仍然适用于您。 IMAP已经是一个改进。
随着quiksoft IMAP组件:
//create a new IMAP4 object, connect
//to a IMAP4 server and login
IMAP4 imap = new IMAP4();
imap.Connect("mail.yourdomain.com");
imap.Login("mailbox", "password");
//select the inbox and download the envelopes
imap.SelectMailbox("Inbox");
EnvelopeCollection imapEnvelopes;
imapEnvelopes = imap.GetEnvelopes();
//loop through each message
//and output the subject
foreach (Envelope imapEnvelope in imapEnvelopes)
{
//write the subject out to the console
Console.WriteLine(imapEnvelope.Subject);
}
//close resources
imap.Logout();
爱思华宝的Merak邮件服务器非常适合这个。它让我们设置一种称为可执行帐户的特殊帐户。您将.exe与电子邮件地址关联起来,然后在命令行中选择一些要发送的内容。当一封电子邮件被发送到该帐户时,它会触发可执行文件。 .exe必须是一个控制台应用程序,你必须小心,它不会挂起,什么不是,但我认为这是一个完美的解决方案。
我们使用它来处理来自谷歌分析的处理统计数据并从其他邮件服务器反弹回来。
类似的问题之一:* http://stackoverflow.com/questions/86553/working-with-pop-imap-email-and-net * http://stackoverflow.com/questions/126068/how-would-you-implement-database-updates-via-email * http://stackoverflow.com/questions/44383/reading-email-using-pop3-in- c – 2009-01-15 22:49:29
Try it OpenPop.NET:https://www.nuget.org/packages/OpenPop.NET/ – razon 2017-01-13 11:52:13