Реализовывал через TIdSMTP, как и написал предыдущий оратор. Но встретился с рядом проблем, хочу поделиться с вами частичными решениями. Дело в том, что года 2-3 назад, многие почтовые сервисы перешли на авторизацию через ssl и тд и тп. На это я и напоролся. Решил проблему пока только с почтой яндекса, с маил.ру не решил и бросил. Но все по порядку. Используемые компоненты:
IdAntiFreeze1: TIdAntiFreeze; MailMessage: TIdMessage;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
IdServerIOHandlerSSLOpenSSL1: TIdServerIOHandlerSSLOpenSSL;
SMTP: TIdSMTP;
Далее, в вашем обработчике пишите код:
SMTP.Host:= 'smtp.yandex.ru' ; // хост
SMTP.Port:= 465 ; // порт
Smtp.Username:= ''; //edit3.Text; // почтовый адрес
Smtp.Password:= '';// edit4.Text; // пароль
Для авторизации, обязательно!
SMTP.UseTLS :=utUseImplicitTLS ;
SMTP.Port:= 465 ;
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL1.Destination := SMTP.Host+':'+IntToStr(SMTP.Port);
IdSSLIOHandlerSocketOpenSSL1.Host := SMTP.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := SMTP.Port;
IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
SMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
MailMessage.CharSet := 'KOI8-R';
MailMessage.From.Name:= ''; // имя
MailMessage.Subject:= 'Проверка электронного ящика пользователя.' ; // тема
MailMessage.From.Address:= 'адрес с которого посылаете' ;
MailMessage.From.Domain:= 'yandex.ru'; // домен
MailMessage.From.User := 'PharmSuitePro';
MailMessage.From.Name := 'PharmSuitePro';
MailMessage.Recipients.EMailAddresses:= ''; // получатель и копия
MailMessage.Body.Text: // тело письма
MailMessage.IsEncoded:=true;
MailMessage.ContentType:='text/plain; charset=KOI8-R';
Коннект и посыл, можно в try
SMTP.Connect;
SMTP.Send(MailMessage);
Это потом:
SMTP.Disconnect();
Попробовал на компе, все получилось, но когда стал пробовать на реальном сервере, пришла ошибка, пришлось обновлять open SSL, и все заработало!