Отправка и получение почты в Delphi 7

Вероятно, наиболее распространенная операция в Интернете — отправление и получение электронной почты. Для отправки и получения почты в Delphi 7 нужна специальная программа, так как уже существующие недостаточно полные.

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

1. Автоматическая генерация почтовых сообщений;

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

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

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

Почта и выход

Использование почтовых протоколов с Indy означает размещение сообщений компонента (IdMessage) в приложениях, наполняя его данными, а затем используете IdSMTP компонент для отправки почты. Для получения почты из ваших
почтовых ящиков, нужно использовать компонент IdPop3, который будет возвращать объект IdMessage. Чтобы дать вам представление о том, как этот процесс
работает, я рассмотрю пример программы для отправки почты на несколько человек одновременно, используя список, который хранится в текстовом файле. Первоначально автор использовал эту программу для отправки почты людям, которые зарегистрируются на его сайте, но потом он переконструировал программу, добавил поддержку базы данных и возможность читать журналы абонента автоматически. Это оригинальная версия программы и хорошее введение с использованием компонентов Indy SMTP.
SendList программа хранит списки имен, адресов электронной почты в файле. Несколько кнопок позволяют добавлять и удалять элементы или изменить пункт, удалив его, редактировать, а затем добавить его снова. Когда программа закрывается, обновленный список будет автоматически сохранен.

Возможно, вы захотите, чтобы поля входа оставались неизменными. Автор не сделал этого только потому, что он не хочет, чтобы вы увидели его данные почтового соединения! Значение этих полей ввода, а также список адресов, позволяет отправлять ряд сообщений электронной почты (после их настройки), используя следующий код:

procedure TMainForm.BtnSendAllClick(Sender: TObject);

var

Punkti: Integer;

Itog: Word;

begin

Itog := MessageDlg (Стартуем отправку ‘ +

IntToStr (ListAddr.ItemIndex) + ‘ (‘ +

ListAddr.Items [ListAddr.ItemIndex] + ‘)?’#13 +

‘(Не начинается с 0)’, mtConfirmation, [mbYes, mbNo, mbCancel], 0);

if Itog = mrCancel then

Exit;

if Itog = mrYes then

Punkti := ListAddr.ItemIndex

else

Punkti: = 0;

// Соединяемся

Mail. Host := eServer.Text;

Mail.UserName := eUserName.Text;

if ePassword.Text <> » then

begin

Mail.Password := ePassword.Text;

Mail.AuthenticationType := atLogin;

end;

Mail.Connect;

// отправляем сообщение

try

// попытка зафиксировать заголовок

MailMessage.From.Name := eFrom.Text;

MailMessage.Subject := eSubject.Text;

MailMessage.Body.SetText (reMessageText.Lines.GetText);

MailMessage.Body.Insert (0, ‘Привет’);

while Punkti < ListAddr.Items.Count do

begin

// показываем текущее состояние

Application.ProcessMessages;

ListAddr.ItemIndex := Punkti;

MailMessage.Body [0] := ‘Привет ‘ + ListAddr.Items [Punkti];

MailMessage.Recipients.EMailAddresses := ListAddr.Items [Punkti];

Mail.Send(MailMessage);

Inc (Punkti);

end;

finally // Финализация

Mail.Disconnect;

end;

end;

. delphi 7 и indy
. delphi работа с почтой
Комментирование и размещение ссылок запрещено.