#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:
Комментарии:
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
Надеюсь, этого достаточно, чтобы вы начали.