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 :
Les méthodes principales :
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
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()); }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_boutonConnexion_clicked() { QTextStream out(socket); out<< "2 LOGIN " <<m_champIdentifiant->text()<<" "<<m_champMdp->text()<<endl; m_boutonDeconnexion->setEnabled(true); }
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
Login pas de soucis également
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 "
mais quand je clique sur le boutonSelect pour envoyer la requete Select Inbox
:
j'ai l'impression que le serveur n'interprète pas le select INBOX comme une requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "" 14 bytes written...
Je suis un peu perdu , si quelqu'un pouvait m'apporter son aider
Merci.
Partager