Отправка сообщения на E-mail через SMTP
Как отправить сообщение на почту через Delphi? Очень просто!
И так, начнем с самого обычного процесса: кидания компонентов на форму :)
- Компонент IdSMTP из вкладки Indy Clients;
- Компонент IdMessage из вкладки Indy Misc;
- Компонент IdEncoderMIME1 из вкладки Indy Misc;
- Компонент Button из вкладки Standart.
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:='[email protected]'; //Логин 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:='[email protected]'; //Адрес отправителя //IdMessage1.From.Name:=ConvertToWIN1251('User'); //Имя отправителя IdMessage1.Recipients.EMailAddresses:='[email protected]'; //Кому отправить письмо (можно через запятую если несколько 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
|
-
отправка очень сильно изменилась :( сейчас больше нет такого