首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libcurl IMAP不工作

libcurl IMAP不工作
EN

Stack Overflow用户
提问于 2015-05-07 19:49:32
回答 1查看 674关注 0票数 2

使用下面的代码,我试图让任何libcurl IMAP命令都能工作。

目前,不管通过CURLOPT_CUSTOMREQUEST设置的命令集如何,在我的回调函数中,唯一给出的数据是收件箱中最古老的电子邮件(第一封)。我甚至可以将类似于"dfsafdasfasfaf“的内容放在CURLOPT_CUSTOMREQUEST中,这样就不会显示错误,并且将从回调中打印出最古老的电子邮件。

我试过在libcurl的站点上使用示例代码,列出文件夹、LSUB等等,而且总是一样--唯一返回的是我收件箱中第一封电子邮件的内容。

我使用的是curl 7.40 mingw32 on win32 g++ (-lcurldll)。

我肯定做错什么了。如果你能花点时间纠正我的错误,我会非常感激的。谢谢。

编辑-即使你不知道答案,如果你已经成功地让libcurl IMAP工作,你能留下评论吗?因为如果没有人让libcurl工作之前,我将停止浪费时间,转而使用VMime或其他选项。

EDIT2 2-我的主要问题是如何通过libcurl列出文件夹?

代码语言:javascript
复制
size_t writeCallback(char* buf, size_t size, size_t nmemb, void* up)
{   
    printf("%s\n", buf);

    return size*nmemb; //tell curl how many bytes we handled
} 


int main(void)
{
    CURL *curl;
    CURLcode res = CURLE_OK;

    curl = curl_easy_init();
    if(curl) {

        curl_easy_setopt(curl, CURLOPT_USERNAME, "gmailuser");
        curl_easy_setopt(curl, CURLOPT_PASSWORD, "password");


        curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.gmail.com/INBOX");
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);

        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
        curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "LIST");

        res = curl_easy_perform(curl);


        if(res != CURLE_OK)
        {
            fprintf(stderr, "curl_easy_perform() failed: %s\n",  curl_easy_strerror(res));
        }

        curl_easy_cleanup(curl);
   }

  _getch (); 
  return (int)res;

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-07 22:32:15

为了获取给定GMail收件箱中的文件夹列表,您应该使用:

代码语言:javascript
复制
curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.gmail.com/");

而且,我相信您不需要这一行来执行列表请求

代码语言:javascript
复制
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "LIST");

我已经在Linux上对它进行了测试,在libcurl版本7.35.0上,尽管我认为您遇到的问题不是操作系统特有的,而是由库中IMAP支持的当前实现状态引起的。您可以找到libcurl版本7.35.0 这里的源代码。

您还可以在示例页上找到更多当前libcurl支持的示例(更详细的示例请参见右侧的链接)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30110396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档