如何以编程方式使用.NET读取传入的电子邮件。我需要一种方法来在POP服务器上获取电子邮件消息的内容(在本例中为XML)并将其读入我的应用程序。
理想情况下,这可以通过以下方式解决:
虽然我对其他选择持开放态度。
编辑:从“非答案”复制:
目前,我们正在考虑使用 电邮帐户我们的托管公司 提供。
我们自己的邮件服务器可能 是一个选择,但它的东西 我们需要联系主持人。
答案 0 :(得分:4)
我们实际上只是实现了同样的事情。
我们处理电子邮件的内容,并通过网络服务将数据推送到我们的CRM。我们使用c#和.net 3.5
要处理我们使用IMap发送的邮件。 CodeProject上有一些.net客户端库。我想我们使用的是LumiSoft中的那个。
我们尝试过WebDav,但没有太多运气。这给我们留下了Pop3或IMap。 IMap支持我们需要的文件夹,所以我们继续使用它。如果您的服务器不支持IMap,我相信用POP3做同样的事情会很容易。
基本上我们每小时连接一次Exchange服务器并下载任何新电子邮件并进行处理。 到目前为止,它运作良好。
修改:我们还使用SharpMimeTools将原始电子邮件转换为更实用的格式。
答案 1 :(得分:2)
答案 2 :(得分:1)
有很多选择,如果你有一个服务总线供你使用,它主要配备一个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();
答案 3 :(得分:0)
爱思华宝的Merak电子邮件服务器非常棒。它让我们设置一种称为可执行帐户的特殊帐户。您将.exe与电子邮件地址关联,并在命令行中选择要发送的大量内容。当电子邮件发送到该帐户时,它会触发可执行文件。 .exe必须是一个控制台应用程序,你必须注意它不会挂起,什么不是,但我认为这是完美的解决方案。
我们使用它来处理来自Google Analytics的处理统计信息以及从其他邮件服务器退回。
答案 4 :(得分:0)
你可以随时DIY A POP 3 Class POP是更简单的协议之一