Новый

Отправка сообщений электронной почты (и вложений) с помощью Delphi & Indy

Отправка сообщений электронной почты (и вложений) с помощью Delphi & Indy


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Ниже приведены инструкции по созданию «отправителя электронной почты», который включает опцию отправки сообщений электронной почты и вложений непосредственно из приложения Delphi. Прежде чем мы начнем, рассмотрим альтернативу ...

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

Отправка электронной почты из Delphi

Есть много способов отправить электронное письмо напрямую из Delphi, но самый простой способ - это использовать ShellExecute API. При этом электронное письмо будет отправлено с помощью установленного на компьютере почтового клиента по умолчанию. Хотя этот подход приемлем, вы не можете отправлять вложения таким способом.

Другой метод использует Microsoft Outlook и OLE для отправки электронной почты, на этот раз с поддержка вложений, но затем необходимо использовать MS Outlook.

Еще одним вариантом является использование встроенной поддержки Delphi для Windows Simple Mail API. Это работает, только если у пользователя установлена ​​MAPI-совместимая программа электронной почты.

Техника, которую мы здесь обсуждаем, использует компоненты Indy (Internet Direct) - отличный пакет интернет-компонентов, состоящий из популярных интернет-протоколов, написанных на Delphi и основанных на блокирующих сокетах.

Метод TIdSMTP (Indy)

Отправка (или получение) сообщений электронной почты с помощью компонентов Indy (которые поставляются с Delphi 6+) так же просты, как удаление одного или двух компонентов в форме, установка некоторых свойств и «нажатие кнопки».

Чтобы отправить электронное письмо с вложениями из Delphi с помощью Indy, нам понадобятся два компонента. Во-первых, TIdSMTOP используется для подключения и связи (отправки почты) с SMTP-сервером. Во-вторых, TIdMessage обрабатывает хранение и кодирование сообщений.

Когда сообщение построено (когда TIdMessageзаполнено данными), электронная почта доставляется на SMTP-сервер с использованием TIdSMTP.

Исходный код отправителя электронной почты

Я создал простой проект отправителя почты, который я объясню ниже. Вы можете скачать полный исходный код здесь.

Заметка: Эта ссылка является прямой загрузкой в ​​ZIP-файл для проекта. Вы сможете открыть его без проблем, но если вы не можете, используйте 7-Zip, чтобы открыть архив, чтобы вы могли извлечь файлы проекта (которые хранятся в папке с именем Отправить письмо).

Как вы можете видеть на скриншоте времени разработки, чтобы отправить электронное письмо, используя TIdSMTP компонент, по крайней мере, необходимо указать почтовый сервер SMTP (хост). Само сообщение нуждается в заполнении регулярных частей электронной почты, таких как От, к, Тема, так далее.

Вот код, который обрабатывает отправку одного письма с вложением:

процедура TMailerForm.btnSendMailClick (Отправитель: TObject); начать StatusMemo.Clear;// настройка SMTP SMTP.Host: = ledHost.Text; SMTP.Port: = 25;// настроить почтовое сообщение MailMessage.From.Address: = ledFrom.Text; MailMessage.Recipients.EMailAddresses: = ledTo.Text + ',' + ledCC.Text; MailMessage.Subject: = ledSubject.Text; MailMessage.Body.Text: = Body.Text;если FileExists (ledAttachment.Text) тогда TIdAttachment.Create (MailMessage.MessageParts, ledAttachment.Text);//Отправить письмо   пытаться     пытаться SMTP.Connect (1000); SMTP.Send (MailMessage);Кроме на E: Исключение делают StatusMemo.Lines.Insert (0, 'ОШИБКА: + E.Message);конец;   Ну наконец то     если SMTP.Connected тогда SMTP.Disconnect;конец; конец; (* btnSendMail Нажмите *)

Заметка: Внутри исходного кода вы найдете две дополнительные процедуры, которые используются для создания значений хозяин, От, а также к Постоянно редактируйте поля, используя INI-файл для хранения.


Смотреть видео: Отправка письма на почту с Delphi программы. уроки Delphi (June 2022).


Комментарии:

  1. Eman

    Хороший выбор. Первый супер. Я буду поддерживать.

  2. Kazrajar

    Извините, я не могу вам помочь, но я уверен, что они помогут вам найти правильное решение.

  3. Odwolf

    Я уверен, что она обманула.

  4. Guyon

    Это невероятно!



Напишите сообщение