Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319

Отправка на E-mail сообщения с прикрепленным файлом

26.05.2012, 21:20. Показов 3320. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для отправки простого письма на E-mail используйте ниже приведенный код
На форму нужно бросить: IdSMTP1 и Memo1.
Код можно вставить допустим в кнопку (Button)

А теперь вопрос знатокам, как прикрепить и отправить файл?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    IdSMTP1->Username = "Имя_своего_ящика@mail.ru";
    IdSMTP1->Password = "***********";//Пароль от своего ящика
    IdSMTP1->Host = "smtp.mail.ru";//SMTP
    IdSMTP1->Port = 587;//Порт
 
    IdSMTP1->Connect();//Подключение
    
    //Проверка аутентификации
    if (IdSMTP1->Authenticate())
    {
        TIdMessage* msg = new TIdMessage(Form1);
        msg->CharSet = "windows-1251";//Кодировка, для кирилицы
        msg->Subject = "Тема письма";
        msg->Body->Assign(Memo1->Lines);//Текст сообщения, берем из Memo1
        msg->From->Text = "От кого";
        msg->Recipients->EMailAddresses = "Кому@mail.ru";//Адрес получателя
        msg->Priority = TIdMessagePriority(mpHighest);//Приоритет письма
 
        IdSMTP1->Send(msg);//Отправка сообщения
        IdSMTP1->Disconnect();//Разрыв соединения
        msg->Free();//Освобождаем память
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2012, 21:20
Ответы с готовыми решениями:

Отправка E-mail сообщения
Всем привет! мне надо чтобы моя программа сендила е мейл сообщения с некоторыми данными (заданными пользователем) и на определённый е мейл...

Отправка сообщения на e-mail
Пожалуйста помогите! Как сделать что бы отправлялось сообщение на е-маил из textbox1 с текстом из textbox2?

Отправка сообщения на e-mail
Здравствуйте. Помогите, пожалуйста. В программе на форме есть 1 Edit и кнопка. Нужно, чтобы при нажатии на кнопку на указанный адрес эл....

6
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
27.05.2012, 11:28
Может быть предварительно заливать файл на какой ни будь хост(можно организовать в cppWebBrowser). А в письме слать как хтмл код с линкой на файл
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.05.2012, 14:01
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    NMSMTP1->SubType = mtPlain;
    NMSMTP1->Host = "smtp.list.ru";
    NMSMTP1->UserID = "YouMail";  //Login
    NMSMTP1->PostMessage->FromAddress = "mail@mail.ru";
    NMSMTP1->PostMessage->FromName = "Name";
    NMSMTP1->PostMessage->ToAddress->Text = "YouMail@mail.ru";
    NMSMTP1->PostMessage->Body->Text = "text";
    NMSMTP1->PostMessage->Attachments->Text = "c:\\File.txt";
    NMSMTP1->PostMessage->Subject = "Subject";
    NMSMTP1->PostMessage->LocalProgram = "Unknow";
    NMSMTP1->PostMessage->Date = "07.22.41";
    NMSMTP1->Connect();
    NMSMTP1->SendMail();
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall TForm1::Button1Click(TObject *Sender)
{
bool res=false;
IdSMTP1->Connect();
res =IdSMTP1->Authenticate();
TIdMessage* M = new TIdMessage(Form1);
M->ContentType = "text/plain";
M->CharSet = "RU-ASCII";
M->Body->Clear();
M->Body->Add("текст письма");
M->From->Text = "qwe@yandex.ru";
M->Recipients->EMailAddresses = "qwe@yandex.ru";
M->Priority = TIdMessagePriority(mpHighest);
M->Subject = "Тема письма";
 
//до этого места всё работает нормально - письма приходят
TIdAttachment* att = new TIdAttachmentFile(M->MessageParts,"c:\\msdia80.dll");
M->MessageParts->Add();
M->MessageParts->Items[0] = att;
 
IdSMTP1->Send(M);
IdSMTP1->Disconnect();
}

Взято с другого форума

Пример на Delphi http://www.bdrc.ru/publ/2-1-0-70
1
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
27.05.2012, 14:49
IdSMTP, ошибка Connection Closed Gracefully


исходник
2
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
27.05.2012, 15:35  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    NMSMTP1->SubType = mtPlain;
    NMSMTP1->Host = "smtp.list.ru";
    NMSMTP1->UserID = "YouMail";  //Login
    NMSMTP1->PostMessage->FromAddress = "mail@mail.ru";
    NMSMTP1->PostMessage->FromName = "Name";
    NMSMTP1->PostMessage->ToAddress->Text = "YouMail@mail.ru";
    NMSMTP1->PostMessage->Body->Text = "text";
    NMSMTP1->PostMessage->Attachments->Text = "c:\\File.txt";
    NMSMTP1->PostMessage->Subject = "Subject";
    NMSMTP1->PostMessage->LocalProgram = "Unknow";
    NMSMTP1->PostMessage->Date = "07.22.41";
    NMSMTP1->Connect();
    NMSMTP1->SendMail();
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall TForm1::Button1Click(TObject *Sender)
{
bool res=false;
IdSMTP1->Connect();
res =IdSMTP1->Authenticate();
TIdMessage* M = new TIdMessage(Form1);
M->ContentType = "text/plain";
M->CharSet = "RU-ASCII";
M->Body->Clear();
M->Body->Add("текст письма");
M->From->Text = "qwe@yandex.ru";
M->Recipients->EMailAddresses = "qwe@yandex.ru";
M->Priority = TIdMessagePriority(mpHighest);
M->Subject = "Тема письма";
 
//до этого места всё работает нормально - письма приходят
TIdAttachment* att = new TIdAttachmentFile(M->MessageParts,"c:\\msdia80.dll");
M->MessageParts->Add();
M->MessageParts->Items[0] = att;
 
IdSMTP1->Send(M);
IdSMTP1->Disconnect();
}

Взято с другого форума

Пример на Delphi http://www.bdrc.ru/publ/2-1-0-70
Здравствуйте Avazart!
  1. В C++ Builder 2010 компонент NMSMTP отсутствует. Это связано с тем что, данный компонент потерял свою актуальность вследствие того, что почти все почтовые серверы в целях борьбы со спамом перешли на обязательную авторизацию пользователей при отправке почты. Остался только IdSMTP.
  1. Часть кода где осуществляется прикрепление файла не работает =(

    C++
    1
    2
    3
    
    TIdAttachment* att = new TIdAttachmentFile(M->MessageParts,"c:\\msdia80.dll");
    M->MessageParts->Add();
    M->MessageParts->Items[0] = att;

Добавлено через 58 секунд
Цитата Сообщение от Gleban38 Посмотреть сообщение
Может быть предварительно заливать файл на какой ни будь хост(можно организовать в cppWebBrowser). А в письме слать как хтмл код с линкой на файл
К сожалению этот вариант не подходит.
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
27.05.2012, 15:49  [ТС]
К сожалению этот исходник на C++ Builder 2010 не пошел...((

Ругается на эту строчку:
C++
1
TIdAttachment *file = new TIdAttachment(msg->MessageParts, Form1->OpenDialog1->FileName); // ATTACH
[BCC32 Error] Unit1.cpp(126): E2352 Cannot create instance of abstract class 'TIdAttachment'
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
31.05.2012, 19:17  [ТС]
Неужели никто не знает как прикрепить файл к письму в C++ Builder 2010?
Или обойти ошибку: E2352 Cannot create instance of abstract class 'TIdAttachment' ???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2012, 19:17
Помогаю со студенческими работами здесь

Отправка сообщения e-mail
Доброго времени суток! Не знаю, как отправить на электронное сообщение человеку с помощью C#. А нужно следующее: человек вводит свой е-майл...

Отправка сообщения на e-mail
Начал создавать программу на visual basick 2008. Смысл был таков, когда человек запускает программу он должен вписать свой аккаунт(логин и...

Отправка сообщения на E-mail
Как осуществить отправку (html) сообщения на E-mail. На e-mail с переменной $mail и текстом с переменой $txet

Отправка сообщения с сайта на e-mail
Здравствуйте, подскажите в чем проблема кода? Данные не отправляются с сайта <form class="form-grp clearfix grpelem"...

Отправка сообщения на указанный e-mail
Доброго времени!Подскажите как реализовать отправку сообщения на указанный в форме e-mail!!!в форме!!!что б пользователь указал проивольный...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru