收到准备好请求的 Gimap 后出现 imap 错误

imap error after received Gimap ready for requests

我在 运行 代码时出错。

代码如下:

void smtp_listener::imapLogin(QString reply)
{
    print_D(FUNC);
    print_D(QString("this is "+reply+"well"));
    if(reply.contains("OK"))
    {
        QString msg = QString("user %1").arg(user);
        print_D(msg);
        *t << msg <<"\r\r\n";
        t->flush();
        setState(POP3_Pass);
    }
    else
    {
        print_E("ERROR :"+reply,FUNC,__LINE__);
        quitConn();
        setState(POP3_Quit);
    }
}

void smtp_listener::pop3Pass(QString reply)
{
    print_D(FUNC);
    print_D(QString("this is "+reply+" well"));
    if(reply.contains("+OK"))
    {
        QString msg = QString("pass %1").arg(pass);
        *t << msg <<"\r\n";
        t->flush();

        setState(POP3_Stat);
    }
    else
    {
        print_E("ERROR :"+reply,FUNC,__LINE__);
        quitConn();
        setState(POP3_Quit);
    }
}

调试后报错:

[Debug] "Email account : connected."

[Debug] "void smtp_listener::imapLogin(QString)"

[Debug] "this is * OK Gimap ready for requests from 140.101.159.251 q2-v6mb85227685wrd

well"

[Debug] "user chairouyih@gmail.com"

[Debug] "void smtp_listener::pop3Pass(QString)"

[Debug] "this is user BAD Unknown command q2-v6mb85227685wrd

well"

"[Error] ERROR :user BAD Unknown command q2-v6mb85227685wrd

at func=void smtp_listener::pop3Pass(QString) Line=361"

[Debug] "void smtp_listener::quitConn()"

[Debug] "void smtp_listener::pop3Quit(QString)"

[Debug] "* BAD invalid tag q2-v6mb85227685wrd

您正在通过 IMAP 服务器使用 POP3 命令。他们不兼容,他们的语言也很不一样。

其一,每个 IMAP 命令都有一个标签,基本登录是使用 LOGIN 命令完成的。它看起来像这样:

a001 LOGIN user@gmail.com "password"

如果您想使用 POP3,请连接到位于 pop.gmail.com 的 pop3 服务器,并在端口 995 上启用 TLS。