Учись программированию на C++ Builder бесплатно!

Чтобы отправить письмо со своей почты указанному адресату можно двумя способами:

  • с помощью стандартного компонента с вкладки FastNet;
  • с помощью стороннего компонента с вкладок Indy Clients и Indy Misc (эти компоненты уже встроены).

Пример №1


С вкладки FastNet расположить на форму компонент NMSMTP1 (он нужен для подключения к почте и отправки писем) и кнопку со следующим кодом:

NMSMTP1->Host = "smtp.rambler.ru";
NMSMTP1->UserID = "LOGIN";
NMSMTP1->Port = 25;
NMSMTP1->Connect();
NMSMTP1->PostMessageA->FromAddress = "мой e-mail";
NMSMTP1->PostMessageA->Subject = "Tema";
NMSMTP1->SendMail();

В FinalHeader нужно писать тест сообщения, а в PostMessage->ToAdress список e-mail адресатов.

Данный пример будет работать если почтовый сервер позволяет отправлять письма без авторизации (без пароля), в противном случае использовать Пример №2.

Пример №2


С вкладки Indy Clients расположить на форму компонент IdSMTP1 (выполняет те же самые функции что и NMSMTP1, но имеет более расширенные настройки), с вкладки Indy Misc компонент IdMessage1 (позволяет создавать письма) и кнопку со следующим кодом:

IdSMTP1->Host = "smtp.rambler.ru";
IdSMTP1->UserId = "LOGIN";
IdSMTP1->Password = "PASSWORD";
IdSMTP1->Port = 25;
IdSMTP1->AuthenticationType = atLogin;
IdMessage1->From->Text = "мой e-mail";
IdMessage1->Recipients->EMailAddresses = "e-mail кому отправить письмо";
IdMessage1->Subject = "Tema";
IdMessage1->Body->Text = "Текст сообщения";
IdSMTP1->Connect();
IdSMTP1->Send(IdMessage1);

В обоих примерах тема письма отправляется в кракозябрах и смена кодировки или преобразование не помогают, выход только один - писать латинскими буквами. Сам текст сообщения отправляется в соответствующей кодировке.


Поиск по сайту