Skip to content

Sending mail via smtp over ssl produces error message #7

Description

@RFL

Hi there
I am sucessfully using the Simple Smtp SSL code with QT5. It works great, the email goes through and everything seems fine, but I get the following error message:
qt.network.ssl: QSslSocket::startClientEncryption: cannot start handshake on non-plain connection

When I check, if the socket ist encrypted socket->isEncrypted() it gives a positive result.
Does this seem familiar to anyone or am I chasing ghosts unnecessarily?
Is it because we open the socket already encrypted and then the command socket->startClientEncryption() is superfluous?

Thank you all in advance!

// TERMINAL
Init STATE ------------------------------
readyRead
Server response code: "250"
Server response:  "250-smtp.mailserver.com\r\n250-SIZE 75000000\r\n250-AUTH PLAIN LOGIN\r\n250-AUTH=PLAIN LOGIN\r\n250 ENHANCEDSTATUSCODES\r\n"
Handshake STATE --------------------------
qt.network.ssl: QSslSocket::startClientEncryption: cannot start handshake on non-plain connection
is encrypted 1? ::  true
"Unknown Error"
is encrypted 2? ::  true
readyRead
Server response code: "250"
Server response:  "250-smtp.mailserver.com\r\n250-SIZE 75000000\r\n250-AUTH PLAIN LOGIN\r\n250-AUTH=PLAIN LOGIN\r\n250 ENHANCEDSTATUSCODES\r\n"
// C++
void Smtp::sendMail(){
...
 this->from = from;
    rcpt = to;
    state = Init;
    // ---- Change for SSL ---------------------------------------
    socket->connectToHostEncrypted(host, port);
...
}

void Smtp::readyRead(){
...
    else if (state == HandShake && responseLine == "250")
    {
        qDebug() << "Handshake STATE --------------------------\r";
        qDebug() << "is encrypted 1? :: " << socket->isEncrypted();
        socket->startClientEncryption();       

        if(!socket->waitForEncrypted(timeout))
        {
            qDebug() << socket->errorString();
            state = Close;
        }
        //Send EHLO once again but now encrypted
        *t << "EHLO localhost" << "\r\n";
        t->flush();

        state = Auth;
        qDebug() << "is encrypted 2? :: " << socket->isEncrypted();
    }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions