/*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * $Id: ftpget.c,v 1.7 2008-02-27 09:06:15 bagder Exp $ */ #include #include #include #include using namespace std; /* * This is an example showing how to send an email via SMTP */ static const char *text[]={ "one\n", "two\n", "three\n", "\n Hello, this is CURL email SMTP", NULL }; struct WriteThis { int counter; }; static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp) { struct WriteThis *pooh = (struct WriteThis *)userp; const char *data; if(size*nmemb < 1) return 0; data = text[pooh->counter]; if(data) { size_t len = strlen(data); memcpy(ptr, data, len); pooh->counter++; /* advance pointer */ return len; } return 0; /* no more data left to deliver */ } int main(void) { CURL *curl; CURLcode res; struct WriteThis pooh; pooh.counter = 0; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { struct curl_slist* rcpt_list = NULL; rcpt_list = curl_slist_append(rcpt_list, "arossen@opentext.com"); rcpt_list = curl_slist_append(rcpt_list, "arossen@rogers.com"); curl_easy_setopt(curl, CURLOPT_URL,"smtp://smtp.gmail.com:587"); curl_easy_setopt(curl, CURLOPT_USERNAME, "alona.rossen"); curl_easy_setopt(curl, CURLOPT_PASSWORD, "XXXXXXXXX"); curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); curl_easy_setopt(curl, CURLOPT_MAIL_FROM, ""); curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt_list); curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER,0); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); curl_easy_setopt(curl, CURLOPT_READDATA, &pooh); curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); // curl_easy_setopt(curl, CURLOPT_MAIL_FROM, ""); //curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, rcpt_list); curl_easy_setopt(curl, CURLOPT_SSLVERSION, 0); curl_easy_setopt(curl, CURLOPT_SSL_SESSIONID_CACHE, 0); res = curl_easy_perform(curl); curl_slist_free_all(rcpt_list); curl_easy_cleanup(curl); curl_global_cleanup(); return 0; } return -1; }