2017-05-29 48 views
3

我想寫(在C#中最有可能)的應用程序,在特定的帳戶檢查電子郵件,探測附加文件,並將其分離爲處理一個文件夾。電子郵件附着物的自動處理

是否有標準的.NET類來執行這些任務?如果不是,我還能使用什麼?

該應用程序將作爲服務運行。

+0

應該在桌面上運行?與客戶(展望等)?或在服務器上?哪個服務器(交換等)? –

+0

@SimonMourier:實際上它可以兼得。 Outlook客戶端或某個服務器(我現在沒有信息)。 Outlook客戶端的回答已經很有幫助。 –

+0

您可以使用C#中的Outlook的Application.NewMailEx事件(如在VBA中:https://msdn.microsoft.com/en-us/library/office/aa171304.aspx)。根據您的配置(安全性,郵件帳戶類型等),實施細節可能會有很大差異。 –

回答

1

雖然沒有API的BCL中下載電子郵件,只發送,有一個很好的認爲,現在是微軟推薦的庫發送和接收電子郵件,支持POP3,IMAP,SMTP。 https://github.com/jstedfast/MailKit

檢測所連接的文件,並將它們分離到一個文件夾進行處理

我會假設你的意思文件下載到一個目錄。幸運的是MailKit這是很容易做到的,和庫的作者在這裏寫了一個例子:https://stackoverflow.com/a/36229918/2595033

(從鏈接採取代碼)

foreach (var attachment in message.Attachments) { 
    using (var stream = File.Create ("fileName")) { 
     if (attachment is MessagePart) { 
      var part = (MessagePart) attachment; 

      part.Message.WriteTo (stream); 
     } else { 
      var part = (MimePart) attachment; 

      part.ContentObject.DecodeTo (stream); 
     } 
    } 
} 

應用程序將作爲服務運行。

這也很容易做到,你需要編寫一個Windows服務。有很多關於在C#中編寫一個資源的資源。在Visual Studio中還有一個模板。

enter image description here

+0

我也發現OpenPop,看起來很相似。 MS很遺憾忽略了接收解決方案。 –

+0

我的回答沒有幫助嗎? – user9993