Используя приведенный ниже код, я пытаюсь получить любые команд libcurl IMAP для работы.libcurl IMAP не работает
В настоящее время, независимо от команды, установленной через CURLOPT_CUSTOMREQUEST, в моей функции обратного вызова единственными данными, которые заданы, является старейшее электронное письмо (1-е) в моем почтовом ящике. Я даже могу добавить что-то вроде «dfsafdasfasfaf» в CURLOPT_CUSTOMREQUEST, и никакая ошибка не будет показана, и самое старое письмо будет напечатано из обратного вызова.
Я пробовал использовать образцы кода на сайте libcurl, перечислять папки, LSUB и т. Д., И это всегда одно и то же - единственное, что вернулось, - это содержимое 1-го письма в моем почтовом ящике.
Я использую curl 7.40 mingw32 на win32 g ++ (-lcurldll).
Конечно, я должен что-то делать неправильно. Если бы вы могли потратить немного времени, чтобы исправить мою ошибку, я был бы очень благодарен. Спасибо.
EDIT - Даже если вы не знаете ответа, не могли бы вы оставить комментарий, если вы успешно получили libcurl IMAP для работы раньше? Потому что, если никто не получил libcurl imap для работы, прежде чем я перестану тратить свое время на это и перейду к VMime или к другому варианту.
EDIT2- Мой главный вопрос: как я могу перечислить папки через libcurl?
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;
}
Что именно вы хотите сделать? – syntagma
Спасибо за ваш вход REACHUS. Я хотел бы начать с перечисления всех папок для учетной записи gmail. – uhuyt845
Вы можете перечислить все папки, просто используя 'curl_easy_setopt (curl, CURLOPT_URL," imaps: //imap.gmail.com/ ")'. Кроме того, я считаю, что вам не нужно 'curl_easy_setopt (curl, CURLOPT_CUSTOMREQUEST,« LIST »)', но я понимаю, что вы хотите каким-то образом форматировать вывод. – syntagma