Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
1

Отправка сообщений на почту

07.04.2015, 07:12. Показов 7797. Ответов 27
Метки нет (Все метки)

Добрый день!

Была поставлена задача написать программу, которая будет отправлять на почту сообщения и файлы. Облазил много форумов, нашел более менее "простенький" пример [cut], но он не работает.

Можете подкинуть примеры, исходники и т.п, прошу сильно не ругать с таким встретился впервые.

Заранее благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2015, 07:12
Ответы с готовыми решениями:

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

Сохранение и отправка через почту файла
Помогите, (я не студент)! По идеи программа сохраняет в файл содержимое edit1 и 2 и отправляет по...

Отправка сообщений на e-mail
Здравствуйте! Мне необходимо отправить сообщение на почту. Нашел пример с компонентами IdSMTP1 и...

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

27
-1 / 0 / 10
Регистрация: 05.04.2015
Сообщений: 80
07.04.2015, 07:29 2
Вот, нашел пошаговую инструкцию , зайдите почитайте, материалы на английском языке, ибо на русском вряд ли вы найдете что-то достойное
Очень надеюсь что чем-то вам помог .
Если возникнут еще вопросы пишите
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
07.04.2015, 21:35  [ТС] 3
Нашел пример программы http://www.youtube.com/watch?v=Wa-lNd82X8Y

Пишу на Embarcadero Rad Studio XE2.
Из данного видео все проработал, но сообщения не отправляются (скорей всего я запутался в портах).

Проект программы тут:
Почта.rar

Помогите разобраться)))
0
1404 / 567 / 127
Регистрация: 31.10.2011
Сообщений: 1,955
08.04.2015, 00:41 4
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
31
32
33
34
35
36
37
38
39
40
41
42
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    IdSMTP1->Host=Edit1->Text;
    IdSMTP1->Port = 465;
    IdSMTP1->Username=Edit2->Text;
    IdSMTP1->Password=Edit3->Text;
 
    IdSSLIOHandlerSocketOpenSSL1->Destination = IdSMTP1->Host+":"+IntToStr(IdSMTP1->Port);
    IdSSLIOHandlerSocketOpenSSL1->Host = IdSMTP1->Host;
    IdSSLIOHandlerSocketOpenSSL1->Port = IdSMTP1->Port;
    IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method = sslvSSLv3;
 
    IdSMTP1->IOHandler = IdSSLIOHandlerSocketOpenSSL1;
    IdSMTP1->UseTLS = utUseImplicitTLS;
 
    IdMessage1->Clear();
    IdMessage1->From->Text = IdSMTP1->Username;
    IdMessage1->Recipients->EMailAddresses=Edit4->Text;
    IdMessage1->Subject=Edit5->Text;
    IdMessage1->Body->Text=Memo1->Text;
 
    TIdMessageBuilderPlain* MyMessage = new TIdMessageBuilderPlain();
    if (ListBox1->Items->Count>0)
    {
      for(int i=0; ListBox1->Items->Count; i++)
      MyMessage->Attachments->Add(ListBox1->Items->Strings[i]);
      MyMessage->PlainText->Text=Memo1->Text;
      MyMessage->FillMessage(IdMessage1);
    }
    try
    {
        IdSMTP1->Connect();
        IdSMTP1->Send(IdMessage1);
    }
    catch (...)
    {
        ShowMessage("error...");
    }
 
    IdSMTP1->Disconnect();
    delete MyMessage;
}
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
08.04.2015, 09:24  [ТС] 5
_Dimon_, не работает(((
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
08.04.2015, 09:31  [ТС] 6
приложение запускается, но вылетает:
Отправка сообщений на почту
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
08.04.2015, 11:32  [ТС] 7
Нашел ошибку, оказывается в логине надо было дописать "@mail.ru"
Сообщения приходят, но вместо слов вопросы
0
управление сложностью
1685 / 1297 / 260
Регистрация: 22.03.2015
Сообщений: 7,548
Записей в блоге: 5
08.04.2015, 12:06 8
Кодировку ставьте.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
08.04.2015, 12:22  [ТС] 9
Почтальен, 5+

Добавлено через 14 минут
Разобрался)))
0
Эксперт С++
8301 / 6131 / 614
Регистрация: 10.12.2010
Сообщений: 28,667
Записей в блоге: 30
08.04.2015, 14:11 10
TIdMessageBuilderPlain откуда? Какая версия IDE / Indy?
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
08.04.2015, 15:06  [ТС] 11
Я выкладывал видеоурок, в котором говорится, что откуда берется.)))
C++
1
#include <IdMessageBuilder.hpp>
0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 2
10.04.2015, 00:11 12
Within_t, разобрался так помогай)
У меня программа виснет на SMTP:Connected после чего выдает ошибку, уже не знаю куда и копать..
Порт, хост, логин, пароль вроде все верно. В чем может быть проблема?
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
10.04.2015, 14:51  [ТС] 13
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Andrye, Сбросьте все визуальные настройки на форме (idmessage, idsmtp, IdSSLIOHandlerSocketOpenSSL) если таковые имеются.
Добавьте библиотеку:
C++
1
#include <IdMessageBuilder.hpp>
Обращаю внимание если у Вас почта не mail.ru, то идентификатор порта не 465 (надо смотреть)
Код отправки сообщения + файлы (если нужно):
Обратите внимание на комментарии:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    IdSMTP1->Host=Edit1->Text;  //хост  (smtp.mail.ru)
    IdSMTP1->Port=465;//
    IdSMTP1->Username = Edit2->Text; //логин (типа: [email]smit@mail.ru[/email] )
    IdSMTP1->Password=Edit3->Text;//пароль   (qwerty)
 
    IdSSLIOHandlerSocketOpenSSL1->Destination=IdSMTP1->Host+":"+IntToStr(IdSMTP1->Port);
    IdSSLIOHandlerSocketOpenSSL1->Host=IdSMTP1->Host;
    IdSSLIOHandlerSocketOpenSSL1->Port=IdSMTP1->Port;
    IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method=sslvSSLv3;
    IdSMTP1->IOHandler=IdSSLIOHandlerSocketOpenSSL1;
    IdSMTP1->UseTLS=utUseImplicitTLS;
 
    IdMessage1->Clear();
    IdMessage1->ContentTransferEncoding="base64";
    IdMessage1->Encoding=mePlainText;
    IdMessage1->From->Text=IdSMTP1->Username;// логин
    IdMessage1->Recipients->EMailAddresses=Edit4->Text; //кому
    IdMessage1->Subject=Edit5->Text; //тема сообщения
    IdMessage1->Body->Text=Memo1->Text; //сам текст Вашего сообщения
    IdMessage1->Date = Now();//системная дата отправки
 
    TIdMessageBuilderPlain* MyMessage = new TIdMessageBuilderPlain();
    for(int i=0; i<ListBox1->Items->Count; i++)
        if (FileExists(ListBox1->Items->Strings[i]))
            MyMessage->Attachments->Add(ListBox1->Items->Strings[i]);
    MyMessage->PlainTextCharSet = "windows-1251";
    MyMessage->PlainText->Text=Memo1->Text;
    MyMessage->FillMessage(IdMessage1);
                                   //windows-1251
    try
    {
        IdSMTP1->Connect();
        if (IdMessage1->MessageParts->Count)
        {
            IdMessage1->ContentType = "multipart/mixed";
            IdMessage1->Encoding = meMIME;
        }
        IdMessage1->CharSet = "windows-1251";
        IdMessage1->ContentTransferEncoding = "8BITMIME";
        IdSMTP1->Send(IdMessage1);
    }
    catch (...)
    {
        String a = "Ошибка отправления!!!";
        Application->MessageBox(a.c_str(), L"Сообщение", MB_ICONINFORMATION | MB_OK);
    }
 
    IdSMTP1->Disconnect(true);
    delete MyMessage;
}
Если что пищите)))

Добавлено через 9 часов 8 минут
Цитата Сообщение от Within_t Посмотреть сообщение
Если что пищите)))
Ой.....))))
Ток сейчас заметил))) Извините.

Если что пишите.
0
D1973
10.04.2015, 14:54
  #14

Не по теме:

Within_t, а ведь и запищат :D

0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 2
11.04.2015, 00:31 15
Within_t, Ура! Заработало! Спасибо огромное я в этом деле новичок, поэтому не спеша буду с кодировкой разбираться
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
27.04.2015, 18:53  [ТС] 16
Добрый вечер, народ!

Сори что поднял тему))) не хотел в новой теме воду лить

13 посте я все прописал как что делал, буквально вчера все отправлялось, но сегодня вылетает "Ошибка отправления".

День просидел не знаю, в чем дело)))
0
Эксперт С++
8301 / 6131 / 614
Регистрация: 10.12.2010
Сообщений: 28,667
Записей в блоге: 30
27.04.2015, 18:58 17
Смотри мой блог, там есть отлов исключений Indy, а не это что у тебя.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
27.04.2015, 18:58  [ТС] 18
Самое интересное, что могу отправлять сообщение только на ящик, с которого отправляю)))
0
Эксперт С++
8301 / 6131 / 614
Регистрация: 10.12.2010
Сообщений: 28,667
Записей в блоге: 30
27.04.2015, 18:59 19
Цитата Сообщение от Within_t Посмотреть сообщение
"Ошибка отправления".
День просидел не знаю, в чем дело)))
Поробуй заменить
C++
1
String a = "Ошибка отправления!!!";
на
C++
1
String a = "Все супер!!!";


Смотри мой блог, там есть отлов исключений Indy, а не это что у тебя.
0
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 559
27.04.2015, 19:01  [ТС] 20
Цитата Сообщение от Avazart Посмотреть сообщение
<цензура>
тем не менее она работала, я понимаю если бы было на оборот)))
0
27.04.2015, 19:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2015, 19:01

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

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

Отправка сообщений на Email из Code Gear RAD studio 2007 C++ Builder
Здравствуйте, возникла необходимость в отправке на email сообщения с 3 мя вложенными изображениями....

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru