处理收件箱中的电子邮件。

7
我该如何使用.NET编程读取传入的电子邮件?我需要一种方法将POP服务器上电子邮件消息(在本例中为XML)的内容读取到我的应用程序中。理想情况下,可以通过以下方式解决:
- .NET代码,我可以在Web服务器上运行作为后台任务来处理电子邮件。 - 服务可以将电子邮件内容POST到我的Web服务器。
虽然我也接受其他选项。
编辑:从“非答案”中复制:
目前,我们正在考虑使用托管公司提供的电子邮件帐户。
我们自己的邮件服务器可能是一个选择,但这是我们需要与主机联系的事情。

类似的问题:* http://stackoverflow.com/questions/86553/working-with-pop-imap-email-and-net * https://dev59.com/_0XRa4cB1Zd3GeqPqUi4 * https://dev59.com/0HVD5IYBdhLWcg3wO5AD - Mauricio Scheffer
尝试使用OpenPop.NET:https://www.nuget.org/packages/OpenPop.NET/ - razon
5个回答

4

我们已经实现了类似的东西。

我们处理电子邮件消息的内容,并通过 Web 服务将数据推入我们的 CRM。我们使用 .net 3.5 中的 c#。

为了处理邮件,我们选择了 IMap。CodeProject 上有一些 .net 客户端库。我想我们使用的是 LumiSoft 的客户端库。

我们尝试过 WebDav,但没有成功。这使我们只能使用 Pop3 或 IMap。IMap 支持文件夹,这是我们需要的,所以我们选择了它。如果您的服务器不支持 IMap,则使用 POP3 做同样的事情肯定也很容易。

基本上,我们每小时连接我们的 Exchange 服务器并下载任何新的电子邮件进行处理。到目前为止,效果很好。

编辑:我们还使用 SharpMimeTools 将原始电子邮件转换为更可用的格式。


2

1

如果您有服务总线可用,那么有很多选择,它通常带有一个POP3适配器。

或者您可以使用POP3 API(例如Quiksoft的Easymail是相当不错的选择)。它还有一个处理退信的好产品。

要阅读所有SMTP消息。如果您拥有邮件服务器,根据服务器类型,还有其他获取消息的方法,有时是自定义API和插件,或者是文件系统。您是否托管自己的邮件服务器? 您使用哪个邮件服务器?

如果可能,我不会选择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();

0

你总是可以自己动手做一个POP 3类 POP是较为简单的协议之一


0
IceWarp的Merak电子邮件服务器非常适合这个需求。它允许我们设置一种特殊类型的帐户,称为可执行帐户。您可以将.exe文件与电子邮件地址关联,并在命令行上选择一堆要发送的内容。当有邮件发送到该帐户时,它会触发可执行文件。.exe必须是控制台应用程序,并且必须确保它不会挂起等问题,但我认为这是完美的解决方案。
我们使用它来处理从Google Analytics获取的统计信息和其他邮件服务器的退回邮件。

+1 给Merak邮件服务器,它是一个很棒的产品。它允许使用dll插件来处理退信,这一点也非常棒。 - Raymond Roestenburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接