使用IMAP4的QT电子邮件客户端

使用IMAP4的QT电子邮件客户端,qt,imap,Qt,Imap,我正在开发一个QT程序,可以检查来自gmail的新邮件,并使用IMAP4协议下载它们。我无法编写命令来显示收件箱中的邮件。请帮帮我。这是我的代码示例 socket->connectToHostEncrypted("imap.gmail.com", 993); if(!socket->waitForConnected(50000)){ qDebug()<<"Error:"<<socket->errorString();

我正在开发一个QT程序,可以检查来自gmail的新邮件,并使用IMAP4协议下载它们。我无法编写命令来显示收件箱中的邮件。请帮帮我。这是我的代码示例

    socket->connectToHostEncrypted("imap.gmail.com", 993);

    if(!socket->waitForConnected(50000)){
        qDebug()<<"Error:"<<socket->errorString();
    }
}

void MySocket::connected(){
    qDebug()<<"**********\nconnected....\n*********";

    QByteArray byteArray("a001 LOGIN username password");
    socket->write(byteArray);
    socket->write("\r\n");

    socket->waitForReadyRead();

    byteArray.clear();
    byteArray.append("A002 LIST inbox");
    socket->write(byteArray);
    socket->write("\r\n");

}
socket->connectToHostEncrypted(“imap.gmail.com”,993);
如果(!socket->waitForConnected(50000)){
qDebug()写入(“\r\n”);
}

您显然不熟悉IMAP协议,因此如果您希望能够有效地使用该协议,则需要阅读

我还建议你查看我的博客文章,快速启动并运行


LIST命令将列出您帐户中的文件夹。下载文件夹中的电子邮件或查看其元数据所需的是。再次阅读RFC,了解它提供了什么。通常情况下,在询问堆栈溢出问题之前,您应该先进行研究。

编写IMAP客户端绝非小事。您是否考虑过使用一些使用Qt编写的现有IMAP库?我当然可以推荐源代码或KDE的IMAP代码。

LIST命令列出邮箱。它不列出特定邮箱的内容。我建议您首先使用诸如“openssl s_client-connect IMAP.gmail.com:993-crlf”之类的命令交互地使用IMAP,当您知道如何读取邮件时,您可以编写一个程序来执行此操作。您可能会发现RFC3501或kmail源代码非常有用。除此之外,它太宽泛了,我想知道您的Qt项目图标是否侵犯了版权。你有没有和迪吉亚等再核实一下?当时我们在稍微修改它时遇到了一些麻烦,而且您似乎也没有使用“香草”徽标。哦,根据你的徽标,这个项目被称为
Qt
(Q工具包),而不是
Qt
(快速时间)。我不是说我不同意,但感觉像是评论材料而不是答案。这个问题可能很快就会被关闭(并被删除?),我有这样的印象。不是说我不同意,而是感觉像是评论材料而不是答案。这个问题可能很快就会结束(并被删除?),我有这样的印象。你是绝对正确的——这只是给作者指出了正确的方向。