Bonjour à tous , je code actuellement un petit client de messagerie qui se connecte au serveur imap de gmail.

Pour le moment j'arrive à faire un capability et un login .
J'ai un bouton sur mon ihm qui dois faire un list "" "*" sur le serveur pour afficher les différentes boites mail. Or cette requete ( ou n'importe qu'elle autre ne passe pas )

Je vous mets les parties essentielles de mon code :

Constructeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
 socket = new QSslSocket(this);
    connect(socket,SIGNAL(connected()),this,SLOT(connecte()));
    connect(socket, SIGNAL(bytesWritten(qint64)),this,
            SLOT(bytesWritten(qint64)));
    connect(socket,SIGNAL(readyRead()),this,SLOT(donneesRecues()));
    connect(socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(erreurSocket(QAbstractSocket::SocketError)));
    socket->connectToHostEncrypted("imap.gmail.com",993);//connexion automatique au serveur
Les méthodes principales :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
void MaFenetre::connecte()
{
    qDebug()<<"Connecté";
 
    socket->write("1 CAPABILITY\n");
    qDebug()<<socket->readLine();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void MaFenetre::bytesWritten(qint64 bytes)
{
    qDebug()<<bytes<<"bytes written...";
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
void MaFenetre::donneesRecues()
{
    qDebug()<<"reading...";
    qDebug()<<socket->readLine();
    m_labelMessageServeur->setStyleSheet("color: #19B2AD;");
    m_labelMessageServeur->setText(socket->readLine());
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void MaFenetre::on_boutonConnexion_clicked()
{
   QTextStream out(socket);
   out<< "2 LOGIN " <<m_champIdentifiant->text()<<" "<<m_champMdp->text()<<endl;
   m_boutonDeconnexion->setEnabled(true);
}
La partie ou je pense que ca coince :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void MaFenetre::on_boutonSelect_clicked()
{
    socket->write("3 Select INBOX"); // j'envoie la requete select ( par exemple)
     qDebug()<<socket->readLine();
 
}

Il n'y a pas de problème de compilation voici ce que m'affiche la console :

résultat du capability : pas de soucis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
"* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH
"
Login pas de soucis également
mais quand je clique sur le boutonSelect pour envoyer la requete Select Inbox
:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
"" 
14 bytes written...
j'ai l'impression que le serveur n'interprète pas le select INBOX comme une requête.

Je suis un peu perdu , si quelqu'un pouvait m'apporter son aider

Merci.