Ho cercato dappertutto e non sono riuscito ancora a venirne a capo con le lettere accentate
nella ricezione delle mail,non vengono riconosciute correttamente.
Premetto che tutto funziona correttamente.
Questo il codice:-
Dgv è il DataGridView
For i = 1 To nmrMessaggi ' nmrMessaggi è il totale dei messaggi da scaricare
msgstring = GetMessage(i) 'GetMessage è la funzione che scarica i messaggi dal server
msg = CreateFromText(msgstring)
Dgv.Item(0, i - 1).Value = splitpiu(0)
Dgv.Item(1, i - 1).Value = msg._Subject
Dgv.Item(2, i - 1).Value = msg._From
Dgv.Item(3, i - 1).Value = msg._To
Dgv.Item(4, i - 1).Value = i
Dgv.Item(5, i - 1).Value = msg._Received
TextBox3.AppendText(msg._Body & vbCrLf)
Next
Questa la funzione
Function GetMessage(ByVal msgindex As Integer) As String
Dim tmpString As String
Dim Data As String
Dim SzData() As Byte
Dim msg As String = String.Empty
Try
Data = "RETR " & msgindex.ToString & vbCrLf
SzData = Encoding.ASCII.GetBytes(Data.ToCharArray)
NetStrm.Write(SzData, 0, SzData.Length)
tmpString = RdStrm.ReadLine()
If tmpString.Substring(0, 4) <> "-ERR" Then
While (tmpString <> ".")
msg = msg & tmpString & vbCrLf
tmpString = RdStrm.ReadLine
End While
End If
Catch exc As InvalidOperationException
MsgBox("Errore: " & vbCrLf & Err.ToString())
End Try
Return msg
End Function
questa l'altra funzione:-
Public Function CreateFromText(ByVal strMessage As String) As Message
Dim Mssg As New Message
Dim brkPos As Integer
Dim Header As String
Dim Headers() As String
Dim Body As String
Dim HeaderName As String
Dim HeaderValue As String
brkPos = InStr(1, strMessage, vbCrLf & vbCrLf)
If brkPos Then
Header = strMessage.Substring(0, brkPos - 1)
Body = strMessage.Substring(brkPos + 1, strMessage.Length - Header.Length - 3)
Else
Throw New Exception("Formato messaggio non valido.")
Exit Function
End If
Headers = Split(Header, vbCrLf)
Dim _header As String
For Each _header In Headers
brkPos = _header.IndexOf(":")
If brkPos >= 0 Then
HeaderName = _header.Substring(0, brkPos)
Else
HeaderName = ""
End If
HeaderValue = _header.Substring(brkPos + 1)
Select Case HeaderName.ToLower
Case "received"
Mssg._Received = HeaderValue
Case "from"
Mssg._From = HeaderValue
Case "to"
Mssg._To = HeaderValue
Case "subject"
Mssg._Subject = HeaderValue
Case "date"
Mssg._Date = HeaderValue
End Select
Next
Return Mssg
End Function
Ho provato tutti gli Encoding,ma il risultato è sempre lo stesso.
Any idea?