我正在尝试使用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;
}
不幸的是,这不起作用。我得到以下输出:
C SELECT INBOX/;UID=1
< C NO Mailbox doesn't exist: INBOX.;UID=1
* Select failed
如果不是curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.example.com/INBOX/;UID=1");
我只放curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.example.com/INBOX);
那么我实际上得到关于INBOX的有用输出,就像我应该的那样,没有错误。
我正在使用uccntu上的gcc进行编译。
答案 0 :(得分:0)
请勿将斜杠添加到您的网址,即使用imaps://imap.example.com/INBOX;UID=1
。
答案 1 :(得分:0)
仅适用于所有人在此之后阅读此内容的人
如果我使用Google Mail帐户,代码就会运行。像这样:
curl_easy_setopt(curl, CURLOPT_URL, "imaps://imap.gmail.com:993/INBOX/;UID=1");
(使用gcc在ubuntu中编译)