Вот собственно выкладываю сорцы Knot-send - консольное приложение на на подобие 'Blat.exe" ,через SMTP протокол, с проверкой на правильность указаных параметров! . Может кому нить пригодится можно доработать\взять кусок кода\ и т.д , после upx весит 84.5кб.
Вот в уже в [Ссылки могут видеть только зарегистрированные пользователи.] .
на данный момент идет с такими параметрами cmd.exe -
Цитата:
knot_send.exe -login [Ссылки могут видеть только зарегистрированные пользователи.] -pass 12121212 -port 25 -smtp smtp.mail.ru -tema lol -to свое_мыло@mail.ru -ot [Ссылки могут видеть только зарегистрированные пользователи.] -name test -body 123 -html -attach D:\log.txt
PHP код:
program Suicide_smtp;
{$APPTYPE CONSOLE}
uses
idsmtp,
IdMessage,
SysUtils;
var
idsmtp1:Tidsmtp;
IdMessage1:TIdMessage;
attach: TidAttachment;
begin
if Paramstr(2)='' then begin
write(' |> Knot-Send v0.1 |> Suicide***91;Vll***93;(c) |> ');
write('Parameters: ');
write(' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ');
write('-Login <e-mail> | -pass <password> |');
write('-port <port> | -smtp <smtp.test.ru> ');
write('-tema <test> | -to <e-mail Komu> | -ot <e-mail ot kogo> | ');
write('-name <name user> | -body <text> |');
write('-html <html> | attach <path file> | ');
write('#== === === === === === ==# === === === === === ==# === ===');
sleep(124);
exit;
end;
idsmtp1:=Tidsmtp.Create(nil);
IdMessage1:=tIdMessage.Create(nil);
IdSMTP1.AuthenticationType:=atLogin;
try
if paramstr(1)='-login' then begin
if paramstr(2)='' then begin
write('Not login');
exit;
end;
if not (paramstr(2)='') then IdSMTP1.Username:=paramstr(2);
end;
if paramstr(3)='-pass' then begin
if paramstr(4)='' then begin
write('Not pass');
exit;
end;
if not(paramstr(4)='') then IdSMTP1.Password:=(paramstr(4));
end;
if paramstr(5)='-port' then begin
if paramstr(6)='' then begin
write('Not port');
exit;
end;
if not (paramstr(6)='') then IdSMTP1.Port:=strtoint(paramstr(6));
end;
if paramstr(7)='-smtp' then begin
if paramstr(8)='' then begin
write('Not smtp server!');
exit;
end;
if not (paramstr(8)='') then IdSMTP1.Host:=(paramstr(8));
end;
with IdMessage1 do begin
if paramstr(9)='-tema' then begin
if paramstr(10)='' then begin
write('Emty');
exit;
end;
if not(paramstr(10)='') then IdMessage1.Subject:=(paramstr(10));
end;
if paramstr(11)='-to' then begin
if paramstr(12)='' then begin
write('Not >to<');
exit;
end;
if not(paramstr(12)='') then IdMessage1.Recipients.EMailAddresses:=(paramstr(12));
end;
if paramstr(13)='-ot' then begin
if paramstr(14)='' then begin
write('Not empty >Ot<!');
exit;
end;
if not(paramstr(14)='') then IdMessage1.From.Address:=(paramstr(14));
end;
if paramstr(15)='-name' then begin
if paramstr(16)='' then begin
write('Not name user!');
exit;
end;
if not(paramstr(16)='') then IdMessage1.From.Name:=(paramstr(16));
end;
if paramstr(17)='-body' then begin
if paramstr(18)='' then begin
write('Emty body text');
exit;
end;
if not (paramstr(18)='') then IdMessage1.Body.Text:=(paramstr(18));
end;
if paramstr(19)='-html' then begin
IdMessage1.ContentType:='text/html; charset=windows-1251?';
end;
if paramstr(20)='-attach' then begin
if paramstr(21)='' then begin
write('Not file!');
exit;
end;
attach:=TIdAttachment.Create(IdMessage1.MessageParts,paramstr(21));
end;
end;
finally
IdSMTP1.Connect;
sleep(214);
try
IdSMTP1.Send(IdMessage1);
write(' ***91; Status: Send! ***93; ');
except
write(' ***91; Status: Error send! ***93; ');
end;
end;
end.
Последний раз редактировалось Suicide[Vll]; 09-11-2011 в 01:57.