2013-12-13 42 views
0

我必須從郵箱中讀取每x分鐘收到的電子郵件。目前我通過hmailserver發送電子郵件,所以假設這將是一個很好的起點。如何從.Net讀取電子郵件和etheir附件?

如果我創建一個新的郵箱[email protected](域已準備好與rdns等設置)是否有一個簡單的方法來閱讀電子郵件及其附件從.net 4(我從來沒有讀過電子郵件代碼在這裏沒有想法)。

我想有一個Windows服務運行檢查郵箱每5分鐘,可以讀取和處理電子郵件和他們的CSV附件。

任何幫助和建議將是巨大的。

回答

1

我做了一個腳本,一旦不得不做你想要什麼。

可悲的是有沒有在.NET任何默認功能(據我所知,糾正我,如果我錯了),所以我們不得不去外部庫。我們使用免費軟件OpenPOP library

檢索信息與下面的函數:

Private Function GetMails(ByVal hostname As String, ByVal port As Integer, ByVal useSsl As Boolean, ByVal username As String, ByVal password As String) As List(Of OpenPop.Mime.Message) 
     Dim client As OpenPop.Pop3.Pop3Client = New OpenPop.Pop3.Pop3Client() 
     client.Connect(hostname, port, useSsl) 
     client.Authenticate(username, password) 

     Dim messageCount As Integer = client.GetMessageCount() 

     Dim allMessages As List(Of OpenPop.Mime.Message) = New List(Of OpenPop.Mime.Message)(messageCount) 

     For count As Integer = 1 To messageCount 
      Try 
       allMessages.Add(client.GetMessage(count)) 
      Catch ex As OpenPop.Pop3.Exceptions.PopServerException 
       allMessages.Add(Nothing) 
      End Try 
     Next 
     Return allMessages 
    End Function 

所有,現在剩下的就是閱讀郵件,並使用標準的IO技術來存儲它們的附件。

上所使用的類更多信息,應在OpenPOP項目我聯繫找到。

+0

FoxHound非常感謝。我將把OpenPop作爲首發。 您是否使用Windows服務來完成所有這些,就像我正在考慮的那樣? – Jonnymaboy

+0

這是一個帶有我們正在使用的調度程序的控制檯腳本,但是這個基本代碼應該可以在任何類型的項目中使用。 – FoxHound

+0

謝謝。任何好處,作爲一個控制檯腳本通過Windows服務器 - 我從來沒有想到一個控制檯腳本。 – Jonnymaboy