轮询电子邮件收件箱

时间:2014-05-15 11:06:56

标签: .net email windows-services smtp

我有一个每日流程,它会向我(实际上是整个群组)发送一封电子邮件,其中有两个附件压缩成一个。我下载了zip文件,将其解压缩并将其中一个文件转发给另一个组。解压缩后转发的文件具有常量名称模式(例如,它始终以ABC_Daily_ * 开头)。我必须每天这样做。

我希望自动化。我正在考虑一个Windows服务,它将执行以下操作:

  1. 轮询邮件服务器(继续查找包含特定主题和发件人的邮件)
  2. 当所需邮件进入收件箱时,它会读取邮件并将zip文件下载到共享位置。
  3. 解压缩拉链。
  4. 文件解压缩后,文件监视器进程将监视所需文件,并作为附件转发到所需组。
  5. 点3-4对我来说很容易,因为我之前做过一些工作。但我不知道如何知道邮件何时进入群组的收件箱。我不知道如何自动阅读邮件并执行上述操作。

    你能指导一下我的问题吗?除了我提到的那个之外,任何其他实施的想法都是最受欢迎的。

1 个答案:

答案 0 :(得分:1)

几年前我实施了一个类似的系统。我所做的是实现一个Windows服务,每隔X秒轮询一次交换邮箱,并批量处理电子邮件。一个提示 - 根据您需要轮询的频率,可能会发现由计划任务驱动的控制台应用程序效率更高(工作量更少)。

对于实际的邮箱互动,我使用了几个用于processingparsing邮件的第三方库,非常简单。

像这样的系统的困难在于确保只处理一次电子邮件并相应地处理有问题的电子邮件而不会阻止服务。对我而言,就像将电子邮件移动到特定文件夹即ProcessingDeadletter一样简单。

我还有我的服务设置,通过电子邮件向我发送有关队列大小,死信电子邮件和任何其他常规错误的报告。