运行代码时出现错误。
以下是代码:
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]“ void smtp_listener :: imapLogin(QString)”
[Debug]“这是* OK,Gimap已准备好接受来自140.101.159.251的请求 q2-v6mb85227685wrd
好”
[调试]“用户chairouyih@gmail.com”
[Debug]“ void smtp_listener :: pop3Pass(QString)”
[Debug]“这是用户BAD未知命令q2-v6mb85227685wrd
好”
“ [错误]错误:用户BAD未知命令q2-v6mb85227685wrd
at func = void smtp_listener :: pop3Pass(QString)Line = 361“
[Debug]“ void smtp_listener :: quitConn()”
[Debug]“ void smtp_listener :: pop3Quit(QString)”
[Debug]“ *错误的无效标签q2-v6mb85227685wrd
答案 0 :(得分:1)
您正在将POP3命令与IMAP服务器一起使用。它们不兼容,并且语言也非常不同。
首先,每个IMAP命令都有一个标记,并且基本登录是通过LOGIN命令完成的。看起来像这样:
a001 LOGIN user@gmail.com "password"
如果要使用POP3,请在pop.gmail.com上连接到pop3服务器,并在995端口上启用TLS。