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

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

26.05.2012, 21:20. Показов 3304. Ответов 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
8484 / 6151 / 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru