Sto lavorando pure io a una cosa del genere, ma solo per la lettura, c'è qui stesso un articolo che indica come fare:
http://www.dotnethell.it/articles/POP3.aspx
Ma c'è un errore nel codice riguardo al comando "TOP", l'ho segnalato e corretto nei commenti, ovviamente la classe è ancora migliorabile, difatti il metodo per ricavare l'header non è tanto affidabile, io l'ho modificato in questo modo:
Public Sub getMessage(ByVal intMessageNum As Integer)
Dim strHeader As String
'controllo che sia connesso
_strMessage = ""
If blnConnect Then
_strMessage = executeCommand("RETR " + intMessageNum.ToString())
'controllo che il messaggio sia stato ricevuto
If chekMessage(_strMessage) Then
'cerco la fine degli header, e la fine è caratterizzata dalla prima
'riga dopo due a capi
Dim headerEnd As Integer = _strMessage.IndexOf(vbCrLf & vbCrLf)
strHeader = _strMessage.Substring(0, headerEnd)
'imposto gli header
getHeader(strHeader)
'reimposto il testo del messaggio
_strMessage = _strMessage.Replace(strHeader, "")
End If
End If
se ti va, posso vedere il codice che utilizzi tu per l'invio?