Notice: Undefined index: cat_id in /var/www/user/data/www/webmaster.timediplom.com/templ/articles.php on line 5

Notice: Undefined index: list_id in /var/www/user/data/www/webmaster.timediplom.com/templ/articles.php on line 6

Notice: Undefined variable: content in /var/www/user/data/www/webmaster.timediplom.com/templ/articles.php on line 32

Notice: Use of undefined constant name - assumed 'name' in /var/www/user/data/www/webmaster.timediplom.com/templ/articles.php on line 137

Notice: Undefined variable: content_one_page in /var/www/user/data/www/webmaster.timediplom.com/templ/forms/content.php on line 67

Notice: Undefined variable: content_two_page in /var/www/user/data/www/webmaster.timediplom.com/templ/forms/content.php on line 70
Delphi » Delphi 2009: отправка почты
 
Студия написания качественных web-сайтов
Фразы дня
Комары, они как гопники, появляются в самых неожиданных местах.
Загрузка...
Главная
Контакты
Статьи
Блог
Портфолио
Обратная связь
Сервисы



Delphi/

Delphi 2009: отправка почты

Введение

Как же можно просто и легко отправить почтовое сообщение? Нужно лишь создать проект в Дельфи 2009 или старше (возможно, будет работать и в 7й версии) и, создав новую форму, заполнить ее нужными полями + написать килобайт кода. Это не сложно)

Подготовка

Открываем Дельфи и создаем новый проект. Сохраняем его (на всякий случай: вдруг, свет отключат). Работать мы будем с почтовым популярным почтовым сервером Mail.ру

Создание формы отправки сообщений

Даем форме заголовок. В моем случае - Mail - клиент. Кидаем бокс (GroupBox во вкладке Standart), в него - 8 Edit`ов, RichEdit (вкладка Win32), 9 Label`ов и 1 кнопку.

После добавляем компоненты: idSMTP (IndyClients), IdMessage, IdAntiFreeze (IndyMisc). IdAntiFreeze ускоряет протекающие на форме процессы, иногда сильно подтормаживающие ее.

После всего проделанного, должно выйти что-то подобное:

Вид Delphi формы после преобразования

Данное размещение компонентов и полей не является обязательным, вы можете сделать на свой вкус.

Прокомментирую некоторые моменты:

  • порт. Почти всегда - 2525;
  • кодировка - тоже почти всегда - Windows-1251.

Осталось написать код, обрабатывающий форму. Два раза кликаем по кнопке отправки, вставляем туда такой код:

form1.idSMTP.Host := form1.server.Text;
form1.idSMTP.Port := strtoint(form1.port.Text);
form1.idSMTP.Username := form1.user_login.Text;
form1.idSMTP.Password := form1.user_pass.Text;

form1.IdMessage1 := TIdMessage.Create;
form1.IdMessage1.CharSet := form1.CharSet.Text;
form1.IdMessage1.From.Address := form1.Edit7.Text; { отправитель }
form1.IdMessage1.Recipients.EMailAddresses := form1.Edit8.Text; { получатель }
form1.IdMessage1.Subject := form1.Edit4.Text; { тема }
   t:= form1.RichEdit1.Text;
form1.IdMessage1.Body.Text := t; { тело }

// отправка
try
form1.idSMTP.Connect;
// rmMain.idSMTP.IOHandler.DefStringEncoding := enANSI;
form1.idSMTP.Send(form1.IdMessage1);
if form1.idSMTP.Connected then form1.idSMTP.Disconnect;
       Application.MessageBox('Письмо отправлено', 'Сообщение', 0);
except
   Application.MessageBox('Ошибка отправки', 'Сообщение', 0);
   form1.idSMTP.Disconnect;
end;

Не забудьте переназвать Edit`ы в коде или на форме!

Запускаем нажатием клавиши F9, вводим данные и отправляем сообщение.


Скачать исходник.

Скачать готовую программу.

2011-09-04




Яндекс.Метрика
Яндекс цитирования