Delphi

Xakep, номер #048, стр. 048-085-2

SendMail1.TO_Address:=SendToEdit.Text;

SendMail1.Subject:=SubEdit.Text;

//Заполняю список адресатов

SendMail1.Listcc.Clear;

SendMail1.Listcc.Add(CCEdit.Text);

//Вношу сам текст письма

SendMail1.MailText.Clear;

for i:=0 to TextEdit.Lines.Count-1 do

SendMail1.MailText.Add(TextEdit.Lines.Strings[i]);

//Прикрепляю файлы

SendMail1.Attachments.Clear;

SendMail1.Attachments.Add('');

//Отправка письма

SendMail1.Action:=Send_Mail;

end;

В самой первой строчке я проверяю наличие информации об SMTP сервере. Если в окне SMTPOptForm в строке адреса SMTP сервера ничего не указано, то я не знаю, с кем соединяться, и вывожу на экран окно настроек.

После его отображения я заполняю поля компонента SendMail1, необходимые при отправке почты. Ты должен заполнить следующие поля:

1. FROM_Address - здесь указывается e-mail адрес чела, которому направляется письмо.

2. SMTP_Server - адрес SMTP сервера.

3. Port - порт сервера. Чаще всего почтовики не выпендриваются и используют порт по умолчанию - 25-ый.

4. TO_Address - собственно адрес чела, которому отправляется письмо.

5. Subject - тема письма.

После этого я заполняю список тех, кому должна быть отправлена копия. Этот список находится в свойстве Listcc. Но прежде чем заполнять, я очищаю старое содержимое методом Clear. Если ты пишешь программу массовой рассылки, то можешь добавить несколько адресов вот таким способом:

SendMail1.Listcc.Clear;

SendMail1.Listcc.Add('vasya@mail.ru');

SendMail1.Listcc.Add('petya@mail.ru');

и так далее.

Сам текст письма находится в свойстве MailText. Его я также сначала очищаю методом Clear, чтобы удалить возможное старое содержимое, а потом заполняю введенным текстом:

SendMail1.MailText.Clear;

for i:=0 to TextEdit.Lines.Count-1 do

SendMail1.MailText.Add(TextEdit.Lines.Strings[i]);

Ну, и последнее, что я делаю перед отправкой - добавляю в Attachments файлы, которые должны быть отправлены вместе с письмом по почте. Список файлов находится в свойстве Attachments. Его я также очищаю методом Clear, а потом добавляю файлы методом Add. У этого метода только один параметр - путь к файлу, который надо будет отправить.

SendMail1.Attachments.Clear;

SendMail1.Attachments.Add('c:filename.txt');

Последняя строчка заставляет компонент отправить созданное письмо:

SendMail1.Action:=Send_Mail;

Здесь свойству Action присваивается значение Send_Mail.

Disconnect

Вот и все. Теперь у тебя есть базовые знания и отличная библиотека для написания собственной программы бомбардировщика, спамера и просто почтового клиента. Если ты собираешься писать невидимую прогу, которая должна будет отправлять что-то незаметно, то все настройки SMTP сервера нужно прописать заранее, чтобы пользователь не видел никаких лишних окон.

Исходники примера, как всегда, будут доступны на диске ][ вместе с библиотекой и на моем сайте www.cydsoft.com/vr-online в разделе Хакер. Исходник, который ты там увидишь, немного улучшен и умеет отображать ход отправки почты и сообщать об ошибках. Это не так уж сложно, поэтому ты и сам сможешь разобраться.

Назад на стр. 048-085-1  Содержание  Вперед на стр. 048-085-3

ttfb: 69.403886795044 ms