/*************************************************** Пример показывает как получить почту по протоколу POP3 При запуске без параметров - выводит список номеров сообщений в почтовом ящике. При передачи параметра (числа) в командной строке программа - считает конкретное сообщение, за номером таким-то, из почтового ящика. Автор: PINGI-PINGI ****************************************************/ #include <string> #include <iostream> #include <fstream> #include "curl/curl.h" using namespace std; static char errorBuffer[CURL_ERROR_SIZE]; static string buffer; // Call Back ф-ия. вызывается каждый раз при приеме данных static int writer(char *data, size_t size, size_t nmemb, string *buffer) { int res = 0; if (buffer != NULL) { buffer->append(data, size * nmemb); res = size * nmemb; } return res; } int main(int argc, char **argv) { string filename = "result.txt"; string link; string number_of_mail; link = "pop3://YouLogin:YouPassword@pop.yandex.ru"; if (argc == 2) { number_of_mail.assign (argv[1]); link += "/"; link += number_of_mail; } CURL *curl; CURLcode result; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); //Задем опции curl_easy_setopt(curl, CURLOPT_URL, link.c_str()); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); //Выполняем... result = curl_easy_perform(curl); if (result == CURLE_OK) { std::ofstream out_file (filename.c_str()); if (out_file.is_open()) { cout << "Write Data to "<< filename << endl; out_file << buffer; } out_file.close (); } else cout << "Error! " << errorBuffer << endl; } curl_easy_cleanup(curl); return 0; }
среда, 6 октября 2010 г.
Прием почты с помощью сURL
В последней версии сURL появилась возможность работы с почтовыми протоколами POP3 и SMTP. Вот небольшой пример, как получить почту по протоколу POP3 с яндекса.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий