Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 18
1

Отправка сообщений на e-mail

31.01.2016, 10:18. Показов 2365. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Мне необходимо отправить сообщение на почту. Нашел пример с компонентами IdSMTP1 и IdMessage1.
Пример довольно короткий, но судя по комментариям у многих работает. Однако у меня программа зависает. Порт и хост я проверил на телефоне, они верны.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 IdSMTP1->Host = "smtp.mail.ru"; // Адрес почтового сервера
 IdSMTP1->Port = 465; //Используемый порт
 IdSMTP1->UserId = "vladislavkr@mail.ru"; // Пишем  логин от почты
 IdSMTP1->Password = "пароль"; // и пароль к нему
 
 
 IdMessage1->From->Text = "vladislavkr@mail.ru";
 IdMessage1->Recipients->EMailAddresses = "aleksbelousoff@bk.ru";
 IdMessage1->Subject = "Прост";
 IdMessage1->Body->Text = "Проверка";
 IdSMTP1->Connect();
 IdSMTP1->Send(IdMessage1);
 IdSMTP1->Disconnect();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2016, 10:18
Ответы с готовыми решениями:

Отправка множества сообщений на mail.ru
Посылатор сообщений через мыло. В идеале - программа должны отправлять несколько писем подряд Что...

Отправка сообщений
Вот написал программу для отправки сообщений на электронную почту, все работает но русские буквы не...

Отправка сообщений на почту
Добрый день! Была поставлена задача написать программу, которая будет отправлять на почту...

HWND и отправка им сообщений.
Здравствуйте, я начал изучать язык C++. А также начал обучение для работы с C++ Borland 6. Неддавно...

6
Заблокирован
31.01.2016, 11:47 2
OvodRu, видимо пользуетесь 6ым билдером? там данные компоненты уже устарели... и данный пример уже не работает, вернее не со всеми почтовыми серверами.
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 18
31.01.2016, 14:09  [ТС] 3
Ну да, 6-ым. Это печально. А какой метод теперь использовать?
0
Заблокирован
31.01.2016, 17:21 4
OvodRu, используйте более новую среду, что я могу посоветовать самое простое, или попытаться обновить компоненты...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32989 / 21295 / 8180
Регистрация: 22.10.2011
Сообщений: 36,586
Записей в блоге: 8
04.02.2016, 09:55 5
Цитата Сообщение от yasno Посмотреть сообщение
там данные компоненты уже устарели
Эти компоеннты прекрасно работают и в XE-ветке Билдера, включая Seattle, ни разу они не устарели. Просто нужно учитывать хитрость mail.ru (с ним ВСЕГДА проблемы), и то, что этот сервер работает по https (а значит, нужен SSL и, возможно, 587-ой порт, а не 465-ый). Только что это разжевывалось: Виснет IdSMTP1->Connect()
0
Заблокирован
04.02.2016, 10:43 6
volvo, про с++ builder 6 идет речь, а не про xe ветку...
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 18
22.02.2016, 09:32  [ТС] 7
Компоненты Indy10 поставил. SMTP подключается, но виснет во время отправки...
Добавил компонент IdSSLIOHandlerSocketOpenSSL.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 SMTP->Host = "smtp.mail.ru"; // Адрес почтового сервера
 SMTP->Port = 587; //Используемый порт
 SMTP->Username = "vladislav97kr@mail.ru"; // Пишем  логин от почты
 SMTP->Password = "пароль";
 
 SSLOpen->DefaultPort = 0;
 SSLOpen->SSLOptions->Method = sslvSSLv23;
 SSLOpen->SSLOptions->Mode = sslmUnassigned;
 
 SMTP->IOHandler = SSLOpen;
 
 IdMessage1->Clear();
 IdMessage1->From->Address = "vladislav97kr@mail.ru";
 IdMessage1->Recipients->EMailAddresses = "sekret123ok@mail.ru";
 IdMessage1->Subject = "Прост";
 IdMessage1->Body->Text = "Проверка";
 
  //SMTP->ConnectTimeout = 30000;
  SMTP->Connect();
  ShowMessage("Соединился");
 
  if (SMTP->Connected())
  {
    ShowMessage("Перед отправкой!");
    SMTP->Send(IdMessage1);//виснет тут
    ShowMessage("Может и отправил");
  }//if
  else  { ShowMessage("Подключиться не удалось"); }
 
  SMTP->Disconnect();
Добавлено через 24 минуты
Еще иногда выдает ошибку "Socket Error #10054. Connect reset be peer." ее можно обойти отключив антивирусник. Но это не удобно.
0
22.02.2016, 09:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2016, 09:32
Помогаю со студенческими работами здесь

Отправка на E-mail
есть вот такая штука std::auto_ptr-TStringList-ALL(new TStringList) её надо отправить на почту при...

Отправка E-mail
Сразу скажу, что я полный ламер. Перерыв весь интернет понял, что сам я эту задачу никогда не решу....

Отправка почты на mail.ru
Здравствуйте!!! Ребята, подскажите, по такому вопросу. Знаю, что тема уже избита вдоль и в поперёк,...

Отправка сообщений окнам: использование функции FindWindow()
я создаю копии приложения с разными именами, и мне надо каждому отправлять пользовательские...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru