Отправка сообщения на E-mail через SMTP

  Как отправить сообщение на почту через Delphi? Очень просто!
И так, начнем с самого обычного процесса: кидания компонентов на форму :)

  1. Компонент IdSMTP из вкладки Indy Clients;
  2. Компонент IdMessage из вкладки Indy Misc;
  3. Компонент IdEncoderMIME1 из вкладки Indy Misc;
  4. Компонент Button из вкладки Standart.
Form
Form

После строки {$R *.dfm} пишем код. Комментарии внутри.
{$R *.dfm}

//Функция конвертирования в кодировку windows-1251
function ConvertToWIN1251(instr:string):string;
begin
  result:='=?'+'Windows-1251'+'?B?'+form1.IdEncoderMIME1.Encode(instr)+'?=';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
attach: TidAttachment;
begin

  IdSMTP1.AuthenticationType:= atLogin;
  IdSMTP1.Username:='user@mail.ru'; //Логин
  IdSMTP1.Password:='password'; //Пароль
  IdSMTP1.Host:='smtp.mail.ru'; //Хост 
  //Хосты: smtp.inbox.ru; smtp.list.ru; smtp.bk.ru; smtp.yandex.ru и т.д.
  IdSMTP1.Port:=25; //Порт (25 - по умолчанию)
  //Порты mail.ru: 587 и 2525 (без шифрования) или 465 (с шифрованием)

  IdMessage1.CharSet:='windows-1251'; //Кодировка в теле сообщения
  IdMessage1.ContentType:='text/plain';
  // или 
  //IdMessage1.ContentType:='text/html'; 
  //если в теле сообщения будет присутствовать HTML код
  IdMessage1.Body.text:='Текст'; //Текст сообщения
  IdMessage1.Subject:=ConvertToWIN1251('Тема'); //Тема сообщения
  IdMessage1.From.Address:='user@mail.ru'; //Адрес отправителя
  //IdMessage1.From.Name:=ConvertToWIN1251('User'); //Имя отправителя
  IdMessage1.Recipients.EMailAddresses:='send_user@mail.ru'; //Кому отправить письмо (можно через запятую если несколько e-mail'ов)
  IdMessage1.IsEncoded:=true;
  //attach:=TIdAttachment.Create(IdMessage1.MessageParts,'Путь до файла'); //Вложение

  try
    //Соединение с почтовым сервером
    IdSMTP1.Connect();
    IdSMTP1.Send(IdMessage1);
    showmessage('Сообщение отправлено');
  except
    showmessage('Ошибка при отправке сообщения');
  end;
//Отсоединяемся от почтового сервера
IdSMTP1.Disconnect;
end;
Вот и всё, Удачи!



Добавил(а): oktavius Дата: 2012-11-21
БРАВО!)



Добавил(а): AndHacker Дата: 2014-11-02
Этот пример, сейчас, точно работает?



Добавил(а): Lomanu4 Дата: 2014-11-22
У меня пишет вот такую ахинею вызвал исключение класса eidprotocolreplyerror с сообщением Smtp is available only with SSL or TLS connection enable


  1. ZmnGM
    ZmnGM 9 days ago
    Medicament information. Cautions. <a href="https://viagra4u.top">cost cheap viagra without insurance</a> in USA. Best what you want to know about medicine. Get information here.
    [url=https://northstartribune.com/2020/08/13/in-defense-of-tigrais-federal-autonomy/#comment-28304]All trends of drug.[/url] [url=http://ggtronics.com/ticket-submitted.php?id=NDY0Mjg=]Best about drugs.[/url] [url=http://en.nextool.cn/index.php?g=&amp;m=article&amp;a=index&amp;id=79&amp;cid=4]All news about medicine.[/url] 97305aa
Отменить.