2013-12-13 2 views
0

사서함에서 x 분마다 수신 전자 메일을 읽어야합니다. 현재 나는 hmailserver를 통해 이메일을 보내고 있으므로 이것이 좋은 출발점이 될 것이라고 가정합니다..Net에서 전자 메일 및 etheir 첨부 파일을 읽는 방법?

[email protected]이라는 새 메일 함을 만들면 (도메인이 모두 rdns 등으로 준비되어 있음) 쉽게 .net 4에서 이메일과 첨부 파일을 읽을 수 있습니다 (이메일을 읽은 적이 없습니다. 코드는 여기에 아이디어가 없기 전에).

저는 매 5 분마다 사서함을 검사하고 전자 메일과 해당 csv 첨부 파일을 읽고 처리 할 수있는 Windows 서비스를 실행하고 있다고 생각했습니다.

어떤 도움이나 제안이라도 좋을 것입니다.

답변

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

관련 문제