Created
April 30, 2016 23:28
-
-
Save anonymous/8690d18e950e3ad9830c183249b9a014 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Client server skeleton - sorry, not much meat in this one:-) | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <iostream> | |
#include <string> | |
#include <fstream> | |
#include "instructor.h" | |
using namespace std; | |
using namespace System; | |
#define CRLF "\r\n" | |
ifstream infile; | |
int main(int argc , char *argv[]) | |
{ | |
WSADATA wsaData; | |
char server[15] = "smtp."; | |
int socketNO; | |
int port = 25; | |
string fromEmail, toEmail, Subject, ToSend; | |
char fromEmailAddress[64]; | |
char toEmailAddress[64]; | |
char msgSubject[64]; | |
char msgToSend[255]; | |
char buffer[4096]; | |
char msgLine[255]; | |
//Gets input from file | |
infile.open("myfile.txt"); | |
while (!infile.eof()){ | |
getline(infile, fromEmail); | |
getline(infile, toEmail); | |
getline(infile, Subject); | |
getline(infile, ToSend); | |
} | |
infile.close(); | |
//Converts file inputs to char arrays | |
for (int i = 0; i < fromEmail.size(); i++) | |
fromEmailAddress[i] = fromEmail[i]; | |
for (int i = 0; i < toEmail.size(); i++) | |
toEmailAddress[i] = toEmail[i]; | |
for (int i = 0; i < Subject.size(); i++) | |
msgSubject[i] = Subject[i]; | |
for (int i = 0; i < ToSend.size(); i++) | |
msgToSend[i] = ToSend[i]; | |
int iResult; | |
// Initialize Winsock | |
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); | |
if (iResult != 0) { | |
printf("WSAStartup failed: %d\n", iResult); | |
return 1; | |
} | |
socketNO = socket(AF_INET, SOCK_STREAM, 0); | |
int connected = connectToHost(socketNO, server, port); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send HELO server.com | |
sprintf(msgLine, "HELO %s%s", server, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send MAIL FROM: <sender@mydomain.com> | |
sprintf(msgLine, "MAIL FROM:<%s>%s", fromEmailAddress, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send RCPT TO: <receiver@domain.com> | |
sprintf(msgLine, "RCPT TO:<%s>%s", toEmailAddress, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send Subject | |
sprintf(msgLine, "Subject:<%s>%s", msgSubject, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send DATA | |
sprintf(msgLine, "Data:<%s>%s", msgToSend, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send blank line and a period | |
sprintf(msgLine, "%s.%s", CRLF, CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Send QUIT | |
sprintf(msgLine, "QUIT%s", CRLF); | |
send(socketNO, msgLine, strlen(msgLine), 0); | |
recv(socketNO, buffer, sizeof(buffer), 0); | |
// Report message has been sent | |
cout << "Sent " << msgToSend << " as email message to " << toEmailAddress << endl; | |
// Close server socket and prepare to exit. | |
closesocket(socketNO); | |
WSACleanup(); | |
system("Pause"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment