Public Function Connection
NbMails = 0
Dim retServer As String
Try
' Initialisation
co = New TcpClient(Server, ServerPort)
'ssl
pop3Stream = New SslStream(co.GetStream(), False)
pop3Stream.ReadTimeout = 30
pop3Stream.AuthenticateAsClient(Server)
ns = co.GetStream()
sr = New StreamReader(pop3Stream)
MsgBox(sr.ReadLine)
Dim sOut As String = "USER " & User & vbCrLf
' Envoi du login
SendStream(sOut)
retServer = sr.ReadLine
MsgBox(sr.Readline) 'génère une erreur car sr.Readline=nothing
RaiseEvent ConnectionStatus(retServer)
' Envoi du mot de passe
sOut = "PASS " & PWord & vbCrLf
SendStream(sOut)
retServer = sr.ReadLine
RaiseEvent ConnectionStatus(retServer)
If retServer.Substring(0, 4) <> "-ERR" Then
NbMails = RecupMsgInfo(1)
RaiseEvent ConnectionStatus("Nombre de mails: " & NbMails.ToString())
Return True
Else
RaiseEvent ConnectionStatus("Identification refusée !")
Return False
End If
Catch ex As Exception
RaiseEvent ConnectionStatus(ex.ToString())
Return False
End Try
End Function
' Envoi des commandes
Private Sub SendStream(ByVal s As String)
Dim FluxSortant() As Byte
FluxSortant = EncodeByte(s)
Try
ns.Write(FluxSortant, 0, FluxSortant.Length)
Catch ex As Exception
RaiseEvent ConnectionStatus(ex.Message)
End Try
End Sub
' Encodage des commandes pour POP3
Private Function EncodeByte(ByVal s As String) As Byte()
Return System.Text.ASCIIEncoding.ASCII.GetBytes(s.ToCharArray())
End Function