Кто может подсказать почему данный код неработает уже несколько примеров перепробывал,все не пашут хотя баннер на почте 250 тоесть доступ есть PHP: program pp; uses Windows,SysUtils,winsock,dialogs; var S:TSocket; Addr:TSockAddr; Data:TWSAData; Len:integer; Buf:array[1..100] of char; procedure SendStr(Str:string); var C:char; begin while (length(Str)>0) do begin C:=Str[1]; delete(Str,1,1); Send(S,C,1,0); end; end; begin WSAStartup($101,Data); S:=Socket(AF_Inet,Sock_Stream,0); Addr.sin_family:=PF_Inet; Addr.sin_port:=HToNS(25); //Address of 'smtp.mail.ru' = 194.67.23.111 Addr.sin_addr.S_un_b.s_b1:=chr(194); Addr.sin_addr.S_un_b.s_b2:=chr(67); Addr.sin_addr.S_un_b.s_b3:=chr(23); Addr.sin_addr.S_un_b.s_b4:=chr(111); FillChar(Addr.sin_zero,SizeOf(Addr.sin_zero),0); if not (Connect(S,Addr,SizeOf(TSockAddr))=0) then begin //error ShowMessage('Error!'); halt; end else begin ShowMessage(Buf); SendStr('HELO 1235'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); SendStr('MAIL FROM: ms@mail.ru'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); SendStr('RCPT TO: z10y@mail.ru'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); SendStr('DATA'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); SendStr('Helloooooo !'+#13#10); SendStr('.'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); SendStr('QUIT'+#13#10); Recv(S,Buf,SizeOf(Buf),MSG_PEEK ); ShowMessage(Buf); shutdown(s,0); end; end.
После того, как отправишь данные надо ещё перенос строки и точку SendStr( 'Hello !'+#13#10 ); SendStr( '.'+#13#10 );
Один хрен оно не будет работать... Аффтар отправляет почту без авторизации, а эт уже баян... Сто раз говорилось...