Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Test.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <cstdio>
- #define WINVER 0x0500
- #define _WIN32_WINNT 0x0500
- #define PSAPI_VERSION 1
- #include <windows.h>
- #include <tchar.h>
- #include <psapi.h>
- #include <sddl.h>
- #include <fstream>
- #include <string.h>
- #include <string>
- #include <curl\curl.h>;
- using namespace std;
- #define FROM "<trollger2011@wp.pl>"
- #define TO "<trollger2011@gmail.com>"
- #define CC "<jshym1@gmail.com>"
- static const char *payload_text[]={
- "Date: Mon, 29 Nov 2010 21:54:29 +1100\n",
- "To: " TO "\n",
- "From: " FROM "(Example User)\n",
- "Cc: " CC "(Another example User)\n",
- "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@rfcpedant.example.org>\n",
- "Subject: SMTP TLS example message\n",
- "\n", /* empty line to divide headers from body, see RFC5322 */
- "The body of the message starts here.\n",
- "\n",
- "It could be a lot of lines, could DZIWKOOO hatever.\n",
- "Check RFC5322.\n",
- NULL
- };
- struct upload_status {
- int lines_read;
- };
- MY DECLARED FUNCTIONS
- int email();
- static size_t payload_source(void *ptr, size_t size, size_t nmemb, void *userp);
- int main(){
- MY PROGRAM CODE
- email();
- system("PAUSE");
- return 0;
- }
- /* *************************************** */
- /* *************************************** */
- MY PROGRAM CODE
- /* *************************************** */
- /* *************************************** */
- /* This is a simple example showing how to send mail using libcurl's SMTP
- * capabilities. It builds on the simplesmtp.c example, adding some
- * authentication and transport security.
- */
- static size_t payload_source(void *ptr, size_t size, size_t nmemb, void *userp)
- {
- struct upload_status *upload_ctx = (struct upload_status *)userp;
- const char *data;
- if ((size == 0) || (nmemb == 0) || ((size*nmemb) < 1)) {
- return 0;
- }
- data = payload_text[upload_ctx->lines_read];
- if (data) {
- size_t len = strlen(data);
- memcpy(ptr, data, len);
- upload_ctx->lines_read ++;
- return len;
- }
- return 0;
- }
- int email()
- {
- CURL *curl;
- CURLcode res;
- struct curl_slist *recipients = NULL;
- struct upload_status upload_ctx;
- upload_ctx.lines_read = 0;
- curl = curl_easy_init();
- if (curl) {
- /* This is the URL for your mailserver. Note the use of port 587 here,
- * instead of the normal SMTP port (25). Port 587 is commonly used for
- * secure mail submission (see RFC4403), but you should use whatever
- * matches your server configuration. */
- curl_easy_setopt(curl, CURLOPT_URL, "smtp://smtp.wp.pl:465");
- /* In this example, we'll start with a plain text connection, and upgrade
- * to Transport Layer Security (TLS) using the STARTTLS command. Be careful
- * of using CURLUSESSL_TRY here, because if TLS upgrade fails, the transfer
- * will continue anyway - see the security discussion in the libcurl
- * tutorial for more details. */
- curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);
- /* If your server doesn't have a valid certificate, then you can disable
- * part of the Transport Layer Security protection by setting the
- * CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST options to 0 (false).
- * curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
- * curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
- * That is, in general, a bad idea. It is still better than sending your
- * authentication details in plain text though.
- * Instead, you should get the issuer certificate (or the host certificate
- * if the certificate is self-signed) and add it to the set of certificates
- * that are known to libcurl using CURLOPT_CAINFO and/or CURLOPT_CAPATH. See
- * docs/SSLCERTS for more information.
- curl_easy_setopt(curl, CURLOPT_CAINFO, "/path/to/certificate.pem");
- */
- /* A common reason for requiring transport security is to protect
- * authentication details (user names and passwords) from being "snooped"
- * on the network. Here is how the user name and password are provided: */
- curl_easy_setopt(curl, CURLOPT_USERNAME, "LOGIN");
- curl_easy_setopt(curl, CURLOPT_PASSWORD, "PASSWORD");
- /* value for envelope reverse-path */
- curl_easy_setopt(curl, CURLOPT_MAIL_FROM, FROM);
- /* Add two recipients, in this particular case they correspond to the
- * To: and Cc: addressees in the header, but they could be any kind of
- * recipient. */
- recipients = curl_slist_append(recipients, TO);
- recipients = curl_slist_append(recipients, CC);
- curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
- /* In this case, we're using a callback function to specify the data. You
- * could just use the CURLOPT_READDATA option to specify a FILE pointer to
- * read from.
- */
- curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
- curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx);
- /* Since the traffic will be encrypted, it is very useful to turn on debug
- * information within libcurl to see what is happening during the transfer.
- */
- curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
- /* send the message (including headers) */
- res = curl_easy_perform(curl);
- /* free the list of recipients and clean up */
- curl_slist_free_all(recipients);
- curl_easy_cleanup(curl);
- }
- return 0;
- }
- ntdll.dll!7de9e39e()
- [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
- > msvcr100.dll!free(void * pBlock) Line 51 C
- Test.exe!Curl_cache_addr(SessionHandle * data, Curl_addrinfo * addr, const char * hostname, int port) Line 373 + 0xc bytes C
- 0018fdf8()
- msvcr100.dll!free(void * pBlock) Line 51 C
- Test.exe!destroy_async_data(Curl_async * async) Line 334 + 0xe bytes C
- Test.exe!Curl_resolver_wait_resolv(connectdata * conn, Curl_dns_entry * * entry) Line 516 + 0xf bytes C
- Test.exe!connect_host(SessionHandle * data, connectdata * * conn) Line 1989 + 0xd bytes C
- Test.exe!Curl_do_perform(SessionHandle * data) Line 2122 + 0xd bytes C
- Test.exe!Curl_perform(SessionHandle * data) Line 2268 + 0x9 bytes C
- Test.exe!curl_easy_perform(void * curl) Line 553 + 0x9 bytes C
- Test.exe!email() Line 379 C++
- Test.exe!main() Line 71 C++
- msvcr100.dll!_initterm(void (void)* * pfbegin, void (void)* * pfend) Line 873 C
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement