2014-06-20 2 views
0

pop3을 사용하여 전자 메일을 보내려고합니다. .net 4.0 만 사용할 수 있기 때문에 "OpenPop.dll"을 사용할 수 없습니다.pop3을 사용하여 전자 메일 수신

나는 독자에게 다가 갈 수는 있지만 독자가하는 것을 인쇄물로 만드는 방법을 모른다.

내가 원하는 것은 각 전자 메일의 보낸 사람,받는 사람 및 크기의 네 가지 항목을 계산하는 방법입니다.

이메일 자체를 계산하고 싶습니다.

Dim client As TcpClient 
    Dim clientStream As Stream 
    Dim writer As System.IO.StreamWriter 
    Dim reader As System.IO.StreamReader 
    Dim host, email, pass As String 
    Dim port As Integer 
    Dim ssl As Boolean 
    host = "pop3.email.com" 
    email = "[email protected]" 
    pass = "pass1" 
    port = 995 
    If client Is Nothing Then 
     client = New TcpClient() 
    End If 
    If Not client.Connected Then 
     client.Connect(host, port) 
    End If 
    If ssl = True Then 
     Dim secureStream As New System.Net.Security.SslStream(client.GetStream()) 
     secureStream.AuthenticateAsClient(host) 
     clientStream = secureStream 
     secureStream = Nothing 
    Else 
     clientStream = client.GetStream() 
    End If 
    writer = New StreamWriter(clientStream) 
    reader = New StreamReader(clientStream) 
+0

[MailKit] (https://github.com/jstedfast/MailKit)은 .NET 4.0이므로 사용할 수 있습니다. – jstedfast

답변

1

그것이 C#으로 작성된 비록 당신에게 그런 일을 구현하는 방법에 대한 몇 가지 포인터를 줄 수있는 오픈 소스 POP3 구현이 : 당신이 그것을 직접 구현하려면

http://www.codeproject.com/Articles/21377/NET-POP-MIME-Client

나는 당신이 당신의 POP3 지식을 브러시 제안보다 :

http://www.ietf.org/rfc/rfc1939.txt

+0

내 .net 4.0 서버에서 pop3Client 또는 "OpenPop.dll"을 실행할 수 없습니다. StreamReader와 StreamWriter를 이해할 수 있도록이 방법으로 처리해야합니다! – teledextri

0

IT는 FA의 실제로는 POP3 클라이언트 (정말 어렵지는 않음)뿐만 아니라 MIME 파서 (작업량이 많음)를 작성하는 작업이 필요합니다.

의 의미가 확실하지 않습니다. "이메일 자체도 계산하고 싶습니다.", 그러나 나는 그것이 당신이 모든 것을 파싱하고 싶다는 것을 의미한다고 생각하니? 아니면 From, Subject 및 Received 헤더를 얻기 위해 헤더를 파싱하는 것만 신경 씁니까?

MIME 구문 분석기를 구현하기 위해 검토해야 할 MIME 사양 목록 (및 링크)은 this page입니다.

또한 POP3 specification을 검토해 보시기 바랍니다.

시작하려면 POP3에는 각 메시지의 크기를 가져 오는 명령이 있습니다 ("STAT"명령에서 읽음). 각 개별 헤더 값을 가져 오는 명령은 없지만 원하는 경우 헤더를 다운로드하라는 명령이 있습니다 ("TOP"명령에서 읽음). 그래도 자신을 파싱해야합니다.

헤더의 기본 구문 분석은 그리 어렵지 않지만 간단한 ASCII가 아닌 헤더 값을 처리해야 할 때 복잡해집니다 (즉, 인코딩되지 않은 8 비트 텍스트 인 경우 rfc2047의 규칙에 따라 인코딩 됨). , 또는 2)의 일부 조합.

헤더 값을 완벽하게 디코딩하는 것에 신경 쓰지 않고 MIME 사양을 완벽하게 구현하더라도 많은 헤더를 디코딩 할 수 없다는 사실을 받아 들일 수 있습니다. 그러나 무엇을 알기를 원한다면 표준에 대한보다 일반적인/심각한 위반 사항 중 일부는 Why decoding rfc2047-encoded headers is hard이라는 제목의 블로그 게시물을 작성했습니다.

리차드 시그 네스 (Richard Signes)의 프레젠테이션이 있습니다. 전자 메일 파싱에 대해 배우고 싶다면 시청하는 것이 매우 중요하다고 생각합니다. 여기에서 찾을 수 있습니다 : https://www.youtube.com/watch?v=JENdgiAPD6c

바라기를이 시작하면 충분합니다.