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

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

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

После строки {$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;

 

 

 

 


Вот и всё, Удачи! 

 

 

Скачать исходник

 

Просмотров: 663 | Добавил: Professional3016 | Рейтинг: 5.0/4
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]