SMTP demo
Http://www.faqs.org/rfcs/rfc821.html
Wsadata WSA; wsastartup (makeword (2, 2), & WSA); socket sock = socket (af_inet, sock_stream, 0); If (sock = invalid_socket) {return-1 ;} struct sockaddr_in ADDR; ADDR. sin_addr.s_addr = inet_addr (server); ADDR. sin_family = af_inet; ADDR. sin_port = htons (port); If (connect (sock, (struct sockaddr *) & ADDR, sizeof (ADDR) {closesocket (sock); Return-2 ;} // ehlochar szbuf [size_4k] = {0}; STD: String request = "ehlo"; Request ++ = server; Request ++ = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // auth loginrequest = "auth login "; request + = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // = ------ request = user; Request + = http_crlf; send (sock, request. c_str (), request. length (), 0); Recv (sock, szbuf, size_4k, 0); Request = pass; Request + = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // mail fromrequest = "mail from "; request + = mailfrom; Request + = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // RCPT torequest = "rcpt "; request + = rcp1_; request + = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // datarequest = "data"; Request ++ = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // = ----------- request = "from :"; request ++ = mailfrom; Request ++ = http_crlf; Request ++ = "to:"; Request ++ = rcp.pdf; Request ++ = http_crlf; Request ++ = "Subject :"; request ++ = subject; Request ++ = http_crlf; Request ++ = "cc:"; Request ++ = cc; Request ++ = http_crlf; Request ++ = body; request + = http_crlf; Request + = ". "; Request + = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // nooprequest = "Noop"; Request ++ = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); // quitrequest = "quit"; Request ++ = http_crlf; send (sock, request. c_str (), request. length (), 0); memset (szbuf, 0, size_4k); Recv (sock, szbuf, size_4k, 0); closesocket (sock );
POP3 demo
Http://www.rfc-editor.org/rfc/rfc1939.txt