Аватар для Fermion
17 / 17 / 3
Регистрация: 05.10.2009
Сообщений: 172

Отправка E-mail

05.10.2009, 19:16. Показов 23029. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу скажу, что я полный ламер. Перерыв весь интернет понял, что сам я эту задачу никогда не решу. Есть куча примеров на Delphi и только один (не работающий) на C++ Builder. Если бы делал "для себя" сделал бы на Delphi и не парился, но мне ставят условие: обязательно на C++ Builder.

В общем задача простая... надо отправить письмо из программы.
Есть вот такой код:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  IdMessage1->Body->Assign(Memo1->Lines);
  IdMessage1->From->Text = "F-ermion@mail.ru";
  IdMessage1->Subject  = "Testik subj";
  IdMessage1->Recipients->EMailAddresses = "F-ermion@yandex.ru";
  IdMessage1->Priority = TIdMessagePriority(mpHighest);
  IdMessage1->CCList->EMailAddresses = "F-ermion@yandex.ru";
 IdSMTP1->Host = "smtp.mail.ru";
 IdSMTP1->UserId = "F-ermion";
 IdSMTP1->Password = "******";
 IdSMTP1->Port = 25;
 IdSMTP1->MailAgent = "Test TidSMTP";
 IdSMTP1->AuthenticationType = atLogin;
}
компилятор на него не ругается... но при этом ничего никуда не оправляет. Кто подскажет, что тут не так?

И ещё... как можно отследить процесс... то есть как можно отслеживать ответы сервера, чтобы понимать на каком этапе происходит проблема.
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2009, 19:16
Ответы с готовыми решениями:

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

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

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

47
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
25.05.2012, 13:00
Студворк — интернет-сервис помощи студентам
Поднимаю снова вопрос об отправки письма на E-mail.
Кто нибудь знает как прикрепить файл к письму?
Вижу что LK уже с чем-то подобным связывался (TIdAttachmentFile)
Если вы знаете как это осуществить, помогите.

Заранее благодарю за помощь!
0
 Аватар для GreyWolf
6 / 6 / 1
Регистрация: 27.11.2009
Сообщений: 41
20.07.2016, 07:05
Рабочий код на отправку e-mail через маил.ру с использованием шифрования TLS (на июль 2016 работает).
Собран с разных тем, авторам спасибо, возможно какие-то строки лишние.
ПОЛУЧАТЕЛЬ, ЗАГОЛОВОК, МОЙ_ЯЩИК, ПАРОЛЬ естественно меняем на свои:
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
53
void send_msg (void)
{
    ip_text();
    Form1->IdMessage1->Body->Assign(Form1->Memo1->Lines);//тут мы берем текст из Memo
    Form1->IdMessage1->From->Text = "МОЙ_ЯЩИК@bk.ru";//от кого письмо (если сервер не проверяет, можно левый адрес)
    Form1->IdMessage1->Subject = "ЗАГОЛОВОК";//Заголовок письма
    Form1->IdMessage1->Recipients->EMailAddresses = "ПОЛУЧАТЕЛЬ@gmail.com";//Адрес получателя
//  IdMessage1->Priority = TIdMessagePriority(mpHighest);// приоритет письма... если разремить - будет высоким
//  IdMessage1->CCList->EMailAddresses = "КОПИЯ@yandex.ru";//Копия письма (если надо)
 
    Form1->IdSMTP1->Host = "smtp.mail.ru";//адрес СМТП сервака
    Form1->IdSMTP1->Username = "МОЙ_ЯЩИК@bk.ru";//Логин
    Form1->IdSMTP1->Password = "ПАРОЛЬ";//Пароль
    Form1->IdSMTP1->Port = 465;// порт SSL
    Form1->IdSMTP1->AuthType = satDefault;//с авторизацией
 
    Form1->IdSSLIOHandlerSocketOpenSSL1->MaxLineAction = maException;
    Form1->IdSSLIOHandlerSocketOpenSSL1->Destination = Form1->IdSMTP1->Host+":"+IntToStr(Form1->IdSMTP1->Port);
    Form1->IdSSLIOHandlerSocketOpenSSL1->Host = Form1->IdSMTP1->Host;
    Form1->IdSSLIOHandlerSocketOpenSSL1->Port = Form1->IdSMTP1->Port;
    Form1->IdSSLIOHandlerSocketOpenSSL1->DefaultPort=0;
    Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method=sslvTLSv1;
    Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Mode=sslmUnassigned;
    Form1->IdSSLIOHandlerSocketOpenSSL1->SSLOptions->VerifyDepth = 0;
 
    Form1->IdSMTP1->IOHandler=Form1->IdSSLIOHandlerSocketOpenSSL1;
    Form1->IdSMTP1->UseTLS=utUseExplicitTLS;
 
    try //дальше собственно отправка и обработка кое каких исключений
    {
        try
        {
            if (Form1->IdSMTP1->Connected())
                Form1->IdSMTP1->Disconnect();
            Form1->IdSMTP1->ReadTimeout = 15000;
            Form1->IdSMTP1->Connect();
            Form1->IdSMTP1->Send(Form1->IdMessage1);
        }
        catch (Exception &exception)
        {
            Form1->IdSMTP1->Disconnect();
            MessageDlg("Application, may not connected", mtError, TMsgDlgButtons() << mbYes, 0);
            Abort;
        }
        // My Code Here
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
        Form1->IdSMTP1->Disconnect();
    }
    return;
}
2
3 / 2 / 2
Регистрация: 22.12.2016
Сообщений: 219
25.04.2018, 17:03
Нету ниукого свежей реализации для билддера 6-го?
0
0 / 0 / 0
Регистрация: 27.12.2018
Сообщений: 14
13.09.2019, 17:38
Здравствуйте, что то не получается с отправкой, выдает сообщение Application, may not connected. Пытаюсь с Gmail отправлять, может что то нужно добавить в код?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33480 / 21578 / 8250
Регистрация: 22.10.2011
Сообщений: 37,041
Записей в блоге: 12
13.09.2019, 18:29
KillerBeattle, файлы libeay32.dll и ssleay32.dll рядом с EXE-шником лежат? Если нет - то скачай отсюда версию для своей ОС и положи эти два файла рядом с EXE твоего приложения.
1
0 / 0 / 0
Регистрация: 27.12.2018
Сообщений: 14
16.09.2019, 16:17
не помогает на RAD 10.3, пишет что не может подключится к ssl library. Может кто знает как правильно написать код, я уже не понимаю что к чему, много форумов прочитал и ничего. Помогите если кто сталкивался с данной проблемой. Если поможет, версия Indy 10.0
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33480 / 21578 / 8250
Регистрация: 22.10.2011
Сообщений: 37,041
Записей в блоге: 12
16.09.2019, 17:34
Да при чем тут код-то? Проблема в том, что почтовые сервера слишком умные стали, то им не нравится, что приложение написано с использованием Indy и надо менять юзерагент, то они без предупреждения меняют способ шифрования и порт, то еще что-нибудь. Поэтому тебе самому придется писать и отлаживать код, чтобы он хотя бы сейчас запустился у тебя с твоим сервером. И нет никакой гарантии, что код, работающий сейчас, заработает через два часа, а уж через два месяца (а тем более - через 2 года) - вероятность практически нулевая.
0
0 / 0 / 0
Регистрация: 27.12.2018
Сообщений: 14
16.09.2019, 18:47
Понял, печально конечно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2019, 18:47

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

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

Отправка через SMTP писем с mail.ru на yandex.ru
Всем доброго времени суток. На этот раз проблема состоит в следующем: нужно отправить сообщение с ящика mail.ru на ящик yandex.ru и на...

Отправка письма на mail.ru через PHP mail()
Добрый день! Перелопатил много чего. Подскажите как все-таки отправить письмо на мэил.ру при помощи маил()? Может какие-то особенные...

Отправка e-mail
Всем привет, у меня есть вопрос, как с помощью c++ отправлять e-mail сообщения, возможно-ли это сделать библиотекой 'winsock'? Просьба...


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

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

Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru