procedure Sends(str : String); var i: integer; begin for i:=1 to Length(str) do if send(sock,str[i],1,0)=SOCKET_ERROR then exit; end; //--------------------- var MailFrom ='from@a.b'; MailTo = 'to@a.b'; CRLF = #13+#10; Body = 'My-Mail-Body'; MySmtp = '127.0.0.1'; subject = 'My-Mail-Subj'; procedure SendMail; begin WSAStartUp($0101, wsadata); sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); Addr.sin_family:=PF_Inet; Addr.sin_port:=HtoNS(25); Addr.sin_addr.S_addr:=Inet_Addr(PChar(MySmtp)); FillChar(Addr.sin_zero,SizeOf(Addr.sin_zero),0); Connect(sock,Addr,sizeof(Addr)); Sends('EHLO s0l.name'+CRLF); Sends('AUTH LOGIN'+CRLF); Sends('bG9naW4='+CRLF); Sends('cGFzc3dvcmQ='+CRLF); Sends('MAIL FROM:'+MailFrom+CRLF); Sends('RCPT TO:'+MailTo+CRLF); Sends('DATA'+CRLF); Sends('To:'+MailTo+CRLF); Sends('Subject:'+Title+CRLF); Sends('From:'+'<'+MailFrom+'>'+CRLF Sends(Body+CRLF); Shutdown(sock, SD_Both); CloseSocket(sock); WSACleanup;
Sends('AUTH LOGIN'+CRLF); Sends('bG9naW4='+CRLF); Sends('cGFzc3dvcmQ='+CRLF