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

18.04.2006, 22:03
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
А ты вообще какой-нить ЯП знаешь?
Собственно алгоритм прост...
юзер вводит STMP, Port, адрес бедняги... и количество писем.
запускаешь цикл типа
for i:=0 to SpinEdit1.Value-1 do begin
здесь код отправки писем...
end;
Тут мона и TProgressBar и TGauge прилепить...
Короче фантазия...
При надобности добавляешь аттач.
Кстати где-то пример отправки писем на WinSocket`ах было....
Ах вот =)
function mail(smtp:string;port:integer;from,dest,subject,bo dy:string):bool;
const
cl=#13#10;
var
WSAData:TWSAData;
Host:TSockAddrIn;
Sock:TSocket;
res:Integer;
procedure senddata(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;
{ получаем ответ от команды }
function recvdata(accept:string):bool;
var
buff:array[1..255] of Char;
begin
res:=recv(Sock,buff,SizeOf(buff),0);
Result:=(Res=SOCKET_ERROR)or(Copy(buff,1,3)=accept );
end;
begin
try
result:=false;
{ инициализация сокета }
WSAStartUp(257,WSAData);
Sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if Sock=INVALID_SOCKET then exit;
{ устанавливаем хост и порт сервера }
res:=inet_addr(PChar(smtp));
if res<=0 then exit;
Host.sin_family:=AF_INET;
Host.sin_port:=htons(port);
Host.sin_addr.S_addr:=res;
{ подключаемся к серверу }
if connect(Sock,Host,SizeOf(Host))>0 then exit;
{ приветствие сервера }
if not recvdata('220') then exit;
{ EHLO }
senddata('EHLO'+cl);
if not recvdata('250') then exit;
{ MAIL FROM: }
senddata('MAIL FROM:'+from+cl);
if not recvdata('250') then exit;
{ RCPT TO: }
senddata('RCPT TO:'+dest+cl);
if not recvdata('250') then exit;
{ DATA }
senddata('DATA'+cl);
if not recvdata('354') then exit;
{ отправляем текст сообщения }
senddata('Subject:'+subject+cl+cl+body+cl+'.');
if not recvdata('250') then exit;
{ отключаемся от сервера }
senddata('QUIT'+cl);
result:=true;
finally
{ убиваем сокет }
closesocket(sock);
WSACleanup;
end;
end;
В принципе сам разберешься...
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Делфи для Новичков.....
|
~Fenix~ |
С/С++, C#, Delphi, .NET, Asm |
21 |
10.06.2006 14:11 |
|
Как загнать в прогу Автозагрузку? (Делфи)
|
Варфоломей |
С/С++, C#, Delphi, .NET, Asm |
7 |
19.04.2006 09:39 |
|
Среда разаработки в делфи
|
bxN5 |
С/С++, C#, Delphi, .NET, Asm |
21 |
09.04.2006 18:42 |
|
Делфи для новичков. Урок 3
|
~Fenix~ |
С/С++, C#, Delphi, .NET, Asm |
17 |
05.04.2006 02:11 |
|
Делфи
|
Veteran |
Разное - Покупка, продажа, обмен |
0 |
19.01.2006 01:05 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|