Send with SMTP to verify mail with attachment

xiaoxiao2021-03-06  48

/ ************************************************** ************ * SMTP.CPP - Use SMTP TO Send An Email with an attachment and verify * * Copyright (c) 2001-2002 by shadowstar. * * Use and modify free. * * Http : //shadowstar.126.com/ ********************************************************** ******************** * / / / ------------------------- -------------------------------------------------- #include #include const Int base64_maxline = 76; const char eol [] = "/ r / n"; const char base64_tab [] = "AbcdefghijklmnopqrStuvwxyz" " AbcdefghijklmnopQRSTUVWXYZ0123456789 / "; const char header [] =" helo support.com/r/n "//" auth login / r / n "// base64 user base64 pass" mail from: chinansl@support.com/r/r/r/r/r/ n "" RCPT TO: ShadowStar@support.com/r/n "" DATA / R / N "" from: chinansl@support.com/r/n "to: SHA Dowstar@support.com/r/n "" Subject: this is a test / r / n "" DATE: 2002-5-14 / r / n "" x-mailer: shadowstar's mailer / r / n "" Mime- Version: 1.0 / r / n "" Content-Type: Multipart / Mixed; Boundary = / "# Boundary # /" / r / n "//" Content-Type: text / plain; charSet = GB2312 / R / N " "/ r / n"; const char content [] = "/ r / n - # boundary # / r / n" "Content-type: text / plain; charSet = GB2312 / R / N" "Content-Transfer- ENCODING: quoted-printable / r / n "" / r / n "" / ******************************** *************************** "

"* SMTP.CPP - Use SMTP TO Send An Email with an attachment and verify *" "* Copyright (c) 2001-2002 by shadowstar. *" * Use and modify free. * "" * Http: // shadowstar. 126.com/ * "" ***************************************** ****************** "" * // r / n "" / r / n "; const char att_header [] =" / r / n - # Boundary # / r / n "" Content-type: Application / OCTET-Stream; Name = SMTP.EXE / R / N "" Content-disposition: attachment; filename = SMTP.EXE / R / N "" Content-Transfer-Encoding: Base64 / r / n "" / r / n "; // ----------------------------------- --------------------------------------- Int Ansitobase64 (Const Char * Szinansi, Int Ninlen , CHAR * SZOUTBASE64, INT NOUTLEN); int Main (int Argc, char * argv []) {wsadata wsadata; int suckfd; struct sockaddr_in servaddr; char buf [0x100]; int x; file * fp; char * aatt = new Char [0x400000]; char * batt = new char [0x555556]; WSAStartup (MAKEWORD (2,2), & wsaData); LPHOSTENT pHost = gethostbyname ( "172.16.234.111"); SockFD = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); ServAddr.sin_family = AF_INET ; Servaddr.sin_addr.s_addr = * (ulong *) phost-> h_addr_list [0]; servaddr.sin_port = htons (25); connection (Sockfd, (Struct SockAddr *) & servaddr, sizeof (servaddr)); // send HEADER Send (Sockfd, Header, Strlen (HEADER), 0); // Send Content Send (Sockfd, Content, Strlen (Content), 0); // Send ATT_Header Send (Sockfd, Att_Header, Strlen (att_header), 0); // read attachment fp = fopen (argv [0], "

RB "); FSEEK (FP, 0, 2); x = ftell (fp); if (x> 0x400000) x = 0; Rewind (fp); Fread (AATT, X, 1, FP); Fclose (FP) ; X = ansitobase64 (AATT, X, BATT, 0X555556); // send base64 attachment Send (Sockfd, Batt, X, 0); Send (SOCKFD, "./R/N", strlen ("./ r / n "), 0); // end send (sockfd," quit / r / n ", strlen (" quit / r / n "), 0); // quit closssocket (sockfd); wsacleanup (); delete [] Aatt; delete [] batt; return 0;} // ------------------------------------- ------------------------------------- Int Ansitobase64 (Const Char * Szinansi, Int Ninlen, Char * szoutbase64, int noutlen) {// input parameter validation if (szinansi == null) || (ninlen == 0) || (szoutbase64 == null) || (NOUTLEN == 0)) Return 0; IF ( NOUTLEN <(NINLEN * 4/3 1 NINLEN * 4/3 / BASE64_MAXLINE * 2 1 4)) Return 0; // set up the parameters prior to the main encoding loop int ninpos = 0; int noutpos = 0 INT nLineLen = 0; INT C1, C2, C3; INT I; // Get Three Characters at a time from the input buffer and encode the for (i = 0; i > 2 ]; SZOUTBASE64 [NOUTPOS ] = Base64_Tab [((C1 << 4) | (C2 >> 4)) & 0x3f]; SzoutBase64 [NOUTPOS ] = Base64_Tab [((C2 << 2) | (C3 >> 6)) & 0x3f]; szoutbase64 [NOUTPOS ] = base64_tab [c3 & 0x3f]; NLINELEN = 4;

转载请注明原文地址:https://www.9cbs.com/read-80703.html

New Post(0)