Ubuntu 如何使用libcurl和C从IMAP服务器读取消息:

Ubuntu 如何使用libcurl和C从IMAP服务器读取消息:,ubuntu,gcc,curl,imap,libcurl,Ubuntu,Gcc,Curl,Imap,Libcurl,我正在尝试使用libcurl从IMAP服务器检索消息。以下是我使用的在线示例代码: #include <stdio.h> #include <curl/curl.h> int main(void){ CURL *curl; CURLcode res = CURLE_OK; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_USERNAME, "use

我正在尝试使用libcurl从IMAP服务器检索消息。以下是我使用的在线示例代码:

#include <stdio.h>
#include <curl/curl.h>

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

   curl = curl_easy_init();
   if(curl) { 
     curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
     curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");
     curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.example.com/INBOX/;UID=1");
     curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
     curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
     curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
     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);
   }
return (int)res;
#包括
#包括
内部主(空){
卷曲*卷曲;
CURLcode res=CURLE_OK;
curl=curl_easy_init();
if(curl){
curl_easy_setopt(curl,CURLOPT_用户名,“用户”);
curl_easy_setopt(curl,CURLOPT_密码,“secret”);
curl\u easy\u setopt(curl,CURLOPT\u URL,“imaps://imap.example.com/INBOX/UID=1“;
curl\u easy\u setopt(curl,CURLOPT\u SSL\u VERIFYPEER,0);
curl\u easy\u setopt(curl,CURLOPT\u SSL\u VERIFYHOST,0);
卷曲度(卷曲度,卷曲度(1L));
res=旋度(curl)\u容易执行(curl);
如果(res!=卷曲(OK)
fprintf(stderr,“curl\u easy\u perform()失败:%s\n”,curl\u easy\u strerror(res));
旋度\轻松\清洁(旋度);
}
返回(int)res;
}

不幸的是,这不起作用。我得到以下输出:

C选择收件箱/;UID=1
*选择失败

如果不是
curl\u easy\u setopt(curl,CURLOPT\u URL,“imaps://imap.example.com/INBOX/UID=1“我只放了
curl\u easy\u setopt(curl,CURLOPT\u URL,“imaps://imap.example.com/INBOX)
然后,我实际上得到了关于收件箱的有用输出,就像我应该得到的一样,没有任何错误


我是在ubuntu上用gcc编译的。

不要在URL后面加斜杠,即使用
imaps://imap.example.com/INBOX;UID=1

仅适用于那些经过这么长时间阅读本文的人

如果我使用Google Mail帐户,代码将为我运行。如下所示:

 curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.gmail.com:993/INBOX/;UID=1");

(使用gcc在ubuntu中编译)

仍然给出相同的消息:C不存在邮箱:INBOX;UID=1协议跟踪是什么样子的?curl站点上的示例使用“imap://...-你的有“imaps://”-在更多的时间之后,在这里拯救了我的灵魂:)thx