Получать электронные письма с помощью pop3

#asp.net #vb.net #pop3

#asp.net #vb.net #pop3

Вопрос:

Я пытаюсь получать электронные письма с помощью pop3. Я не могу использовать «OpenPop.dll » потому что я могу использовать только .net 4.0.

Я могу добраться до читателя, но я не знаю, как сделать распечатку того, что делает читатель.

Мне нужен способ вычисления этих четырех элементов: от, Тема, Получено и размер для каждого электронного письма.

Само электронное письмо я также хотел бы рассчитать.

     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 = "this@email.com"
    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)
 

Комментарии:

1. MailKit — это .NET 4.0, так что вы могли бы это использовать.

Ответ №1:

Несмотря на то, что он написан на C #, существует реализация POP3 с открытым исходным кодом, которая может дать вам несколько советов о том, как реализовать что-то подобное:

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

Если вы хотите реализовать это самостоятельно, я предлагаю вам освежить свои знания POP3:

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

Комментарии:

1. Я не могу запустить Pop3Client или «OpenPop.dll » на моем сервере .net 4.0. Мне нужно сделать это таким образом, чтобы я понимал StreamReader и StreamWriter!

Ответ №2:

Написать не только POP3-клиент (что на самом деле не так уж и сложно), но и MIME-анализатор (а это тонна работы) — это немалая работа.

Я не уверен, что вы подразумеваете под «самим письмом, которое я также хотел бы вычислить»., но я полагаю, это означает, что вы хотите проанализировать все это? Или вы заботитесь только о разборе заголовков, чтобы получить заголовки From, Subject и Received?

Список (и ссылки) спецификаций MIME, которые вам необходимо просмотреть для реализации анализатора MIME, смотрите на этой странице.

Вы также захотите ознакомиться со спецификацией POP3.

Для начала в POP3 есть команда для определения размера каждого сообщения (ознакомьтесь с командой «STAT»). Нет команд для получения каждого отдельного значения заголовка, но есть команда просто загрузить заголовки, если это все, что вы хотите (прочитайте команду «TOP»). Однако вам нужно будет проанализировать их самостоятельно.

Базовый синтаксический анализ заголовков не так уж сложен, но он начинает усложняться, когда вам нужно обрабатывать значения заголовков, которые не являются простыми ASCII (т. Е. Если Они представляют собой некодированный 8-битный текст, закодированный в соответствии с правилами rfc2047 или некоторой комбинацией из 2).

Возможно, вы не заботитесь об идеальном декодировании значений заголовков и просто принимаете тот факт, что даже если вы идеально реализуете спецификации MIME, вы не сможете декодировать много заголовков… но если вам интересно узнать, каковы некоторые из наиболее распространенных / вопиющих нарушений стандарта, я написал об этом сообщение в блоге под названием «Почему сложно декодировать заголовки в кодировке rfc2047«.

Существует запись презентации Ричарда Сайнса, которую, я думаю, очень полезно посмотреть, если вы хотите также узнать о разборе электронной почты. Вы можете найти это здесь: https://www.youtube.com/watch?v=JENdgiAPD6c

Надеюсь, этого достаточно, чтобы вы начали.