Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur Connexion Serveur POP3...

2 réponses
Avatar
Patrick Bastin
Bonjour,

Lors du test d'un programme permettant de g=E9rer les emails=20
via le protocol POP3, j'ai rencontr=E9 quelques probl=E8mes.
Mon probl=E8me est tr=E8s simple je me connecte, pas de=20
probl=E8me, j'envoi la commande "USER", pas de probl=E8me, je=20
recois la r=E9ponse du serveur, pas de probl=E8me, j'envoi la=20
commande "PASS", pas de probl=E8me, je recois la =E9ponse du=20
serveur, ca plante, le programme reste bloqu=E9 sur=20
le "Receive".
voila le code :

private Socket m_Socket;
private string strUser =3D "user";
private string strPass =3D "password";
private string strServerPop=20
=3D "AdresseLogiqueOuPhysiqueDuServeur";=09

// Fonction principale pour la connection
private void Connecter()
{
Connection();
EnvoiCommande(m_Socket,"USER " + strUser + "\n");
RecupereReponse(m_Socket);
EnvoiCommande(m_Socket,"PASS " + strPass + "\n");
RecupereReponse(m_Socket);
}
// Fonction permettant la connexion au serveur
protected void Connection()
{
try
{
m_Socket=3Dnew Socket
(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
IPAddress AdresseIP=3D
Dns.Resolve(strServerPop).AddressList[0];
IPEndPoint ep=3Dnew IPEndPoint(AdresseIP,110);
m_Socket.Connect(ep);
// En cas d'erreur, une exception est g=E9n=E9r=E9 par=20
connect ou bind
PanneauStatusConnexion.Text=3D"Connect=E9";
}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction d'envoi de commande au serveur POP3
protected void EnvoiCommande(Socket Sock, string Commande)
{
try
{
// if(!m_Socket.Connected)
// Connection();

Byte[] cmdBytes =3D=20
Encoding.ASCII.GetBytes((Commande).ToCharArray());
=09
int Nbre=3DSock.Send(cmdBytes,=20
cmdBytes.Length,
SocketFlags.None);

}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction de r=E9ception des donn=E9es du serveur POP3
protected void RecupereReponse(Socket Sock)
{
try
{
int NbreByte=3D0;
Byte[] Buffer =3D new Byte[256];

NbreByte=3DSock.Receive(Buffer,
Buffer.Length,
SocketFlags.None);
m_DerniereReponse=3DEncoding.ASCII.GetString(Buffer);
PanneauStatusDerniereCommande.Text=3D
m_DerniereReponse.Trim();
=09
}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}

Icrem.
Patrick.

2 réponses

Avatar
LEBRUN Thomas
Tes commandes devaient se terminer par rn et pas seulement n

--
LEBRUN Thomas
MCP Visual C# (70-316)


"Patrick Bastin" a écrit :

Bonjour,

Lors du test d'un programme permettant de gérer les emails
via le protocol POP3, j'ai rencontré quelques problèmes.
Mon problème est très simple je me connecte, pas de
problème, j'envoi la commande "USER", pas de problème, je
recois la réponse du serveur, pas de problème, j'envoi la
commande "PASS", pas de problème, je recois la éponse du
serveur, ca plante, le programme reste bloqué sur
le "Receive".
voila le code :

private Socket m_Socket;
private string strUser = "user";
private string strPass = "password";
private string strServerPop
= "AdresseLogiqueOuPhysiqueDuServeur";

// Fonction principale pour la connection
private void Connecter()
{
Connection();
EnvoiCommande(m_Socket,"USER " + strUser + "n");
RecupereReponse(m_Socket);
EnvoiCommande(m_Socket,"PASS " + strPass + "n");
RecupereReponse(m_Socket);
}
// Fonction permettant la connexion au serveur
protected void Connection()
{
try
{
m_Socket=new Socket
(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
IPAddress AdresseIP > Dns.Resolve(strServerPop).AddressList[0];
IPEndPoint ep=new IPEndPoint(AdresseIP,110);
m_Socket.Connect(ep);
// En cas d'erreur, une exception est généré par
connect ou bind
PanneauStatusConnexion.Text="Connecté";
}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction d'envoi de commande au serveur POP3
protected void EnvoiCommande(Socket Sock, string Commande)
{
try
{
// if(!m_Socket.Connected)
// Connection();

Byte[] cmdBytes =
Encoding.ASCII.GetBytes((Commande).ToCharArray());

int Nbre=Sock.Send(cmdBytes,
cmdBytes.Length,
SocketFlags.None);

}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction de réception des données du serveur POP3
protected void RecupereReponse(Socket Sock)
{
try
{
int NbreByte=0;
Byte[] Buffer = new Byte[256];

NbreByte=Sock.Receive(Buffer,
Buffer.Length,
SocketFlags.None);
m_DerniereReponse=Encoding.ASCII.GetString(Buffer);
PanneauStatusDerniereCommande.Text > m_DerniereReponse.Trim();

}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}

Icrem.
Patrick.



Avatar
Patrick Bastin
Merci beaucoup Thomas, tu es un pro, ça fonctionne du
tonnerre.

-----Message d'origine-----
Tes commandes devaient se terminer par rn et pas


seulement n

--
LEBRUN Thomas
MCP Visual C# (70-316)


"Patrick Bastin" a écrit :

Bonjour,

Lors du test d'un programme permettant de gérer les




emails
via le protocol POP3, j'ai rencontré quelques




problèmes.
Mon problème est très simple je me connecte, pas de
problème, j'envoi la commande "USER", pas de




problème, je
recois la réponse du serveur, pas de problème,




j'envoi la
commande "PASS", pas de problème, je recois la éponse




du
serveur, ca plante, le programme reste bloqué sur
le "Receive".
voila le code :

private Socket m_Socket;
private string strUser = "user";
private string strPass = "password";
private string strServerPop
= "AdresseLogiqueOuPhysiqueDuServeur";

// Fonction principale pour la connection
private void Connecter()
{
Connection();
EnvoiCommande(m_Socket,"USER " + strUser + "n");
RecupereReponse(m_Socket);
EnvoiCommande(m_Socket,"PASS " + strPass + "n");
RecupereReponse(m_Socket);
}
// Fonction permettant la connexion au serveur
protected void Connection()
{
try
{
m_Socket=new Socket
(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
IPAddress AdresseIP=
Dns.Resolve(strServerPop).AddressList




[0];
IPEndPoint ep=new IPEndPoint(AdresseIP,110);
m_Socket.Connect(ep);
// En cas d'erreur, une exception est généré




par
connect ou bind
PanneauStatusConnexion.Text="Connecté";
}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction d'envoi de commande au serveur POP3
protected void EnvoiCommande(Socket Sock, string




Commande)
{
try
{
// if(!m_Socket.Connected)
// Connection();

Byte[] cmdBytes =
Encoding.ASCII.GetBytes((Commande).ToCharArray




());

int Nbre=Sock.Send(cmdBytes,
cmdBytes.Length,
SocketFlags.None);

}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}
// Fonction de réception des données du serveur POP3
protected void RecupereReponse(Socket Sock)
{
try
{
int NbreByte=0;
Byte[] Buffer = new Byte[256];

NbreByte=Sock.Receive(Buffer,
Buffer.Length,
SocketFlags.None);
m_DerniereReponse=Encoding.ASCII.GetString(Buffer);
PanneauStatusDerniereCommande.Text=
m_DerniereReponse.Trim();

}
catch(Exception Erreur)
{
MessageBox.Show(Erreur.Message);
}
}

Icrem.
Patrick.



.