Delphi – Indy. Отправка письма с вложением

17 августа 2011    

Как, используя Delphi и компоненты Indy, отправлять почту с вложением и с корректным отображением русского текста? Очень просто.

Чтобы отправить электронное письмо с вложением, понадобятся два компонента из пакета Indy: TIdSMTP (вкладка Indy Clients) и TIdMessage (вкладка Indy Misc). Кроме того в uses нужно добавить модуль IdAttachmentFile (для прикрепление вложения к письму).

Отправка почты

Как можно увидеть на скриншоте, для отправки письма нужно указать SMTP-сервер, имя пользователя, пароль, адрес отправителя и адрес получателя.

Сам код настройки компонентов и отправки письма:

procedure TMailerForm.btnSendMailClick(Sender: TObject);
begin
  StatusMemo.Clear;

  //установки SMTP
  SMTP.Username := ledUsername.Text;
  SMTP.Password := ledPassword.Text;

  SMTP.Host := ledHost.Text;
  SMTP.Port := 25;

  //установки сообщения
  MailMessage.CharSet:='koi8-r'; // для корректности русских букв
  MailMessage.From.Address := ledFrom.Text;
  MailMessage.Recipients.EMailAddresses := ledTo.Text;

  MailMessage.Subject := ledSubject.Text;
  MailMessage.Body.Text := Body.Text;

  if FileExists(ledAttachment.Text) then
    TIdAttachmentFile.Create(MailMessage.MessageParts, ledAttachment.Text);

  //отправка письма
  try
    try
      SMTP.Connect;
      SMTP.Send(MailMessage);
    except on E:Exception do
      StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
    end;
  finally
    if SMTP.Connected then SMTP.Disconnect;
  end;

end;

Немного по коду:

MailMessage.CharSet:='koi8-r';

– кодировка сообщения (иначе русские символы будут отображаться вопросительными знаками)

if FileExists(ledAttachment.Text) then
    TIdAttachmentFile.Create(MailMessage.MessageParts, ledAttachment.Text);

– присоединение к письму (MailMessage) файла (ledAttachment.Text)

Остальное довольно понятно.
Кроме того при закрытии программы все настройки сохраняются в ini-файл. А про открытии загружаются из него.


Похожие записи из категории Статьи

  • Прокрутка компонентов, не имеющих фокуса ввода
  • Количество вхождений подстроки в строке
  • Отправка email через скрипт
  • Как полезно иногда пользоваться сниффером
  • Склеиваем изображения средствами Delphi
  • Нравится


    Метки: , , , , , , , , Рубрика: Статьи


    обсуждение


    оставить комментарий или два