Как программно отправить E-mail?

Cети и Интернет   14 Сентябрь 2010  Автор статьи: admin 

В этом уроке я покажу, каким образом можно отправлять email, используя компонент Tidsmtp.

Для начала откроем наш Delphi и создадим новый проект.

Перетащим на форму компонент Tidsmtp, который находится во вкладке Indy Clients:

Объявим в разделе uses модуль idmessage, который будет отвечать за формирование содержимого и параметров нашего письма, такие как получатель или заголовок письма.

Далее создайте любую кнопку и опишите ее обработчик (OnClick) так как показано тут:

var
 M: TIdMessage;
begin
 M := TIdMessage.Create(Form1);
 M.Body.Add('1 line');// первая строка сообщения
 M.Body.Add('2 line');// вторая строка сообщения и т.д.
 M.From.Text := '"cybern.ru" otpravitel @yandex.ru';
 //отправитель (в кавычках указано имя)
 M.Recipients.Add;
 M.Recipients.Items[0].Text := 'pupkinvasya@yandex.ru'; //получатель
 M.Subject := 'cyberlight.freei.me'; //тема
 IdSMTP1.AuthenticationType := atLogin;
 IdSMTP1.Host := 'smtp.yandex.ru';  // smtp сервер мыла, с которого отправляем
 IdSMTP1.Username := 'otpravitel';  // логин от мыла, с которого отправляем
 IdSMTP1.Password := '123456'; // пароль от мыла, с которого отправляем
 IdSMTP1.Connect();
 if IdSMTP1.Connected then IdSMTP1.Send(M);
 IdSMTP1.Disconnect
end;

Если вы сделали все правильно и подключились к интернету :) , то все обязательно должно работать. Email будет отправляться скрытно от вас, т.е без различных уведомлений. О том как проверять почту мы разберемся в следующем уроке.

  • Verdgilxxx007

    Не работает на XE 2 в строке IdSMTP1.AuthenticationType := atLogin;

  • Verdgilxxx007

    C 2009 delphi [code]IdSMTP1.AuthType := satDefault;[/code]

  • Вадим

    А как сделать загрузку имени отправителя из строки в Memo? Как не напишу, так и не работает… Вот один пример: M.From.Text := ‘»form1.Memo1.Lines[27]+’ HandBook'»+handbook@mail.ua’;

  • Влад

    все правильно сделал но пишет ошибку :
    5.7.1 sender addres rejected not owner by auth user

  • Verdgilxxx007

    Не работает на XE 2 в строке IdSMTP1.AuthenticationType := atLogin;

Научиться программировать

  • на Delphi

  • на Java

  • на C++