Nå er det sikkert en del av de hardcore programmerene som vil gi noe kritikk på koden, men det får så være. Dette er og blir sloppy-10-minutes-proof-of-concept-code.
Du får selv justere slik at du får sendt med argumentene der du trenger de, og sette de følgenge inn i strenger.
Jeg skriver med php-tag her nå fordi indenting ikke ser til å funke skikkelig med code-tag.
(En plass der du kan lese koden skikkelig er på
http://www.rafb.net/paste/results/rD6bmC36.html)
Kode
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment( lib, "wsock32.lib" );
// argc er antall argumenter slengt med programmet når det starter, argv[index] er selvfølgelig argumentet.
int main( int argc, char *argv[] )
{
WSADATA sData;
SOCKET Client;
if( WSAStartup( 0x0202, &sData ) )
return false;
if( INVALID_SOCKET != (Client=socket( AF_INET, SOCK_STREAM, IPPROTO_TCP)) )
{
LPHOSTENT Host = gethostbyname( "mail.online.no" );
SOCKADDR_IN ServerInfo;
ServerInfo.sin_family = AF_INET;
ServerInfo.sin_port = htons( 25 );
ServerInfo.sin_addr = *((LPIN_ADDR)*Host->h_addr_list );
if( SOCKET_ERROR != connect(Client, (LPSOCKADDR)&ServerInfo, sizeof(ServerInfo)) )
{
char Data[512];
strcpy( Data, "HELO online.no\r\n" );
strcat( Data, "MAIL FROM:<root@fbi.gov>\r\n" );
strcat( Data, "RCPT TO:<din@epost.no>\r\n" );
strcat( Data, "DATA\r\n" );
strcat( Data, "Subject:E-postens tittel\r\n\r\n" ); // To ganger (RFC 882)
strcat( Data, "Dette er da epostens innhold...\r\n" );
strcat( Data, "\r\n.\r\n" );
strcat( Data, "QUIT \r\n" );
if( -1 == send(Client, Data, sizeof(Data), 0) )
printf( "Error sending mail" );
}
else
printf( "connect error\n" );
}
else
printf( "Socket error\n" );
WSACleanup();
return 0;
}
Sist endret av m0b; 16. mai 2006 kl. 23:12.