ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

23.11.2009, 13:35
|
|
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме: 813785
Репутация:
314
|
|
Socket SMTP
Пол дня курил RFC по SMTP, так и не смог правильно составить тело.
Покажите, где ошибка:
Код:
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
и все-равно доходит
Последний раз редактировалось s0l_ir0n; 23.11.2009 в 13:52..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|