Как я могу записать данные из libcurl в структуру строк? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь заполнить эту структуру строк темой и отправителем данного письма.Структура:

struct EmailData {
    string msg_subject;
    string msg_sender;
};

Я использовал функцию writedata, например, такую, которая ранее записывала в простую строку.

size_t CurlWrite(void* contents, size_t size, size_t nmemb, struct EmailData *Email)
{
    size_t newLength = size * nmemb;
    try
    {
        Email.msg_subject = ((char*)contents, newLength);
    }
    catch (std::bad_alloc& e)
    {
        //handle memory problem
        return 0;
    }
    return newLength;
}

Однако я не знаю, как ее изменитьнапишите в каждый раздел структуры.

curl_easy_setopt(curl, CURLOPT_URL,
            "imaps://imap.gmail.com:993/INBOX/;UID=*/;section=HEADER.FIELDS%20(Subject,From)");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlWrite);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &Email);

Это релевантная часть функции curl IMAP.

Любые предложения о том, как можно исправить функцию CurlWrite, чтобы она моглаиспользовать структуру строк?Также есть ли способ автоматически опускать "From" и "Subject" в начале строк или мне нужно будет стереть строку после этого?

...