Delphi

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

Твоя собственная почтовая мышка

Horrific aka Фленов Михаил smiandr@mail.ru www.cydsoft.com/vr-online

Мне почему-то регулярно приходят письма с просьбой объяснить, как отправить письмо так, чтобы оно не было заметно юзеру. Я понимаю, что проблема касается практически любого продвинутого перца, но не вижу в этом ничего сложного. В Delphi полно компонентов, которые легко могут выполнить эту задачу. Отправленные с помощью этих компонентов письма не сохраняются в почтовом клиенте, и ты без проблем можешь сделать отправку невидимой.

Получается, что если я просто опишу пример отправки письма, это будет слишком просто. Именно поэтому я опишу не простейший способ, а самый эффективный и интересный (на мой взгляд). Лично я люблю отправлять письма через библиотеку FreeInternet. Эта библиотека абсолютно бесплатна, и поставляется в исходниках. Эти исходники ты сможешь найти на диске ][ или на моем сайте через несколько дней после выхода этого номера.

Внутренности библиотеки

Устанавливается библиотека очень просто. Тебе нужно только открыть с помощью Delphi файл FreeInter.dpk и в появившемся окне нажать кнопку Install (смотри нулевой скрин). Библиотека ставится как по маслу на Delphi5 и 6. В седьмой версии я пока ее не тестировал.

Заглянув в исходники библиотеки, ты сразу же наткнешься на пример готового почтового клиента. Посмотри на первый скрин, и увидишь главное окно этого примера. Скажу честно, пример явно не законченный и требует доработки даже для того, что уже есть. Но, по крайней мере, это отличная база для понимания того, как самому сделать нечто подобное летучей мышке The Bat.

Несмотря на простоту, пример достаточно красивый и рабочий. Взглянув только на внешний вид адресной книги, можно понять, что автор старался не за деньги, а для себя любимого :). Все продумано и красиво реализовано. Даже не верится, что все это бесплатно. Тебе остается только немного изменить внешний вид примера, и, возможно, ты станешь следующим мышевладельцем.

Простой пример

Я не собираюсь расписывать весь пример, который ты и сам увидишь. Моя задача - показать, как с помощью такой мощной библиотеки отправить простенькое письмо с прикрепленным файлом. Для этого нам понадобится запустить Delphi и создать простой проект Application. Главную форму оформляем в соответствии со скрином три.

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

Как только сконструируешь эти формы, можешь переходить к кодингу. По нажатию кнопки "Отправить" пишем следующий код:

procedure TForm1.SendButtonClick(Sender: TObject);

var

i:Integer;

begin

//Проверка наличия информации о почтовом сервере

if SMTPOptForm.SMTPEdit.Text='' then

SMTPOptForm.ShowModal;

//Заполняю параметры письма

SendMail1.FROM_Address:=SMTPOptForm.SendFromEdit.Text;

SendMail1.SMTP_Server:=SMTPOptForm.SMTPEdit.Text;

SendMail1.Port:=StrToIntDef(SMTPOptForm.PortEdit.Text,25);

Содержание  Вперед на стр. 048-085-2

ttfb: 143.23282241821 ms