Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/43: Рейтинг темы: голосов - 43, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21

Отправка почты

27.07.2009, 19:45. Показов 8632. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
скажите пожалуйста как сделать чтобы при вводе в Edit1,..... и нажатие на кнопку произошла отправка почты.может компонент какой-то для этого нужен?

Добавлено через 8 часов 1 минуту 29 секунд
ну что из всех программистов тут никто не знает? хм..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2009, 19:45
Ответы с готовыми решениями:

Отправка почты
Добрый день. Подскажите, пожалуйста, как реализуется процесс отправки почты в среде С++ Builder. Хотелось бы, чтобы при нажатии...

Отправка электронной почты
Добрый день. Пытаюсь отправить электронное письмо. После соединения с smtp.list.ru ("94.100.177.4") порт 25 получаю...

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

42
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21
27.07.2009, 23:26  [ТС]
Студворк — интернет-сервис помощи студентам
ох мне как интересно что за код ошибки 451

Добавлено через 35 секунд
Цитата Сообщение от zeliboba Посмотреть сообщение
там используются компоненты IdMessage1 и IdSMTP1...
а в с++ IdMessage1 вроде нет?

Добавлено через 12 минут 38 секунд
ухуху =) сделал)
0
0 / 0 / 0
Регистрация: 27.07.2009
Сообщений: 9
27.07.2009, 23:33
Цитата Сообщение от At@y Посмотреть сообщение
ох мне как интересно что за код ошибки 451

Добавлено через 35 секунд


а в с++ IdMessage1 вроде нет?
есть - посмотри на вкладках Indy
Вся проблема - то и заключается в то, что хэлпов маловато...

Добавлено через 6 минут 51 секунду
Цитата Сообщение от At@y Посмотреть сообщение
ухуху =) сделал)
покажи! =)
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
27.07.2009, 23:37
Пример, как работать с IdSMTP и TIdMessage:
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    IdSMTP1->UserId = "VANJA@mail.ru";
    IdSMTP1->Password = "QWERTY";
    IdSMTP1->Host = "smtp.mail.ru";
    IdSMTP1->Port = 25;
 
    IdSMTP1->Connect();
 
    if (IdSMTP1->Authenticate())
    {
        TIdMessage* msg = new TIdMessage(Form1);
        msg->CharSet = "Windows-1251";
        msg->Subject = "Тема письма";
        msg->Body->Add("Текст письма");
        msg->From->Text = "VANJA@mail.ru";
        msg->Recipients->EMailAddresses = "VASJA@yandex.ru";
        msg->Priority = TIdMessagePriority(mpHighest);
 
        IdSMTP1->Send(msg);
        IdSMTP1->Disconnect();
        msg->Free();
    }
}
0
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21
27.07.2009, 23:39  [ТС]
надо было просто FromName добавить) NMSMTP1->Host = "smtp.ok.kz";
C++
1
2
3
4
5
6
7
8
9
NMSMTP1->UserID = "atay";
NMSMTP1->PostMessage->FromAddress = "От кого";
NMSMTP1->PostMessage->FromName = "baton";
NMSMTP1->PostMessage->ToAddress->Add("Кому"); 
NMSMTP1->PostMessage->Body->Add(Memo1->Text); //Текст Сообщения
NMSMTP1->PostMessage->Subject = Edit2->Text; //Тема
NMSMTP1->Connect();
NMSMTP1->SendMail();
NMSMTP1->Disconnect();
Добавлено через 1 минуту 2 секунды
Цитата Сообщение от polivets Посмотреть сообщение
Пример, как работать с IdSMTP и TIdMessage:
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    IdSMTP1->UserId = "VANJA@mail.ru";
    IdSMTP1->Password = "QWERTY";
    IdSMTP1->Host = "smtp.mail.ru";
    IdSMTP1->Port = 25;
 
    IdSMTP1->Connect();
 
    if (IdSMTP1->Authenticate())
    {
        TIdMessage* msg = new TIdMessage(Form1);
        msg->CharSet = "Windows-1251";
        msg->Subject = "Тема письма";
        msg->Body->Add("Текст письма");
        msg->From->Text = "VANJA@mail.ru";
        msg->Recipients->EMailAddresses = "VASJA@yandex.ru";
        msg->Priority = TIdMessagePriority(mpHighest);
 
        IdSMTP1->Send(msg);
        IdSMTP1->Disconnect();
        msg->Free();
    }
}
ммм...щас попробуем) всё таки на mail.ru оО
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
27.07.2009, 23:42
ммм...щас попробуем) всё таки на mail.ru оО
Аутентификационные данные, должны быть верны
0
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21
27.07.2009, 23:43  [ТС]
ну вроде без ошибок прошло щас почту проверим

Добавлено через 1 минуту 9 секунд
oO у меня ток у одного в почту не заходит на майле?
0
0 / 0 / 0
Регистрация: 27.07.2009
Сообщений: 9
28.07.2009, 19:56
Цитата Сообщение от At@y Посмотреть сообщение
ну вроде без ошибок прошло щас почту проверим

Добавлено через 1 минуту 9 секунд
oO у меня ток у одного в почту не заходит на майле?
вот исходник на делфях.... я так и не довёл это дело до ума (не стал "переводить" на С) тк у меня корпоративная локалка и стандартной NMSMTP хватает..
впрочем, вот код:
Delphi
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
IdSMTP1.Host:=Edit3.Text;
  IdSMTP1.Port:=StrToInt(Edit4.Text);
  WriteToLog('Подготовка письма для '+ Whom);
  Msg.Clear;
  Msg.From.Address:=Edit5.Text;
  i:=Pos(',',whom);
  while i<>0 do
  begin
     Msg.Recipients.Add.Address:=Copy(whom,1,i-1);
     whom:=Copy(whom,i+1,Length(whom)-i);
     i:=Pos(',',whom);
  end;
  Msg.Recipients.Add.Address:=whom;
  WriteToLog('Тема письма для '+ Subject);
  Msg.Subject := Subject;
  msg.ContentType:='multipart/mixed';
  a:=TIdAttachment.Create(Msg.MessageParts, atFiles);
  WriteToLog('Прикрепляем файл - '+ atFiles);
  with a do
  begin
    mt:=TIdMimeTable.Create;
//    a.ContentType:='application/ms-excel';
    a.ContentType:='multipart/mixed';
//    a.ContentType:=mt.GetFileMIMEType(what);
    a.ContentTransfer:='base64';
  end;
  WriteToLog('Подключение к '+ IdSMTP1.Host);
  if not IdSMTP1.Connected
     then IdSMTP1.Connect;
  if IdSMTP1.Connected then
    begin
      WriteToLog('Подключение к '+ IdSMTP1.Host+' успешное');
      IdSMTP1.Send(Msg);
//      Sleep(5000);
      WriteToLog('Письмо отправлено');
      IdSMTP1.Disconnect;
    end;
  if IdSMTP1.Connected then IdSMTP1.Disconnect;
  mt.Free;
end;
 
 
procedure TForm1.msgInitializeISO(var VTransferHeader: TTransfer;
  var VHeaderEncoding: Char; var VCharSet: String);
begin
    VTransferHeader := bit7; // Бит на кодирование
    VHeaderEncoding:='Q';  // Тип кодировки: Q - QuotedPrintable, B - Base64
    case combobox1.ItemIndex of
     0:VCharSet:='koi8-r' ;
     1:VCharSet:='Windows-1251' ;
    end;
    WriteToLog('Параметры инициализации: кодировка-'+VCharSet+', тип кодирования-'+VHeaderEncoding);
end;
0
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21
28.07.2009, 21:38  [ТС]
Цитата Сообщение от zeliboba Посмотреть сообщение
вот исходник на делфях.... я так и не довёл это дело до ума (не стал "переводить" на С) тк у меня корпоративная локалка и стандартной NMSMTP хватает..
впрочем, вот код:
Delphi
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
IdSMTP1.Host:=Edit3.Text;
  IdSMTP1.Port:=StrToInt(Edit4.Text);
  WriteToLog('Подготовка письма для '+ Whom);
  Msg.Clear;
  Msg.From.Address:=Edit5.Text;
  i:=Pos(',',whom);
  while i<>0 do
  begin
     Msg.Recipients.Add.Address:=Copy(whom,1,i-1);
     whom:=Copy(whom,i+1,Length(whom)-i);
     i:=Pos(',',whom);
  end;
  Msg.Recipients.Add.Address:=whom;
  WriteToLog('Тема письма для '+ Subject);
  Msg.Subject := Subject;
  msg.ContentType:='multipart/mixed';
  a:=TIdAttachment.Create(Msg.MessageParts, atFiles);
  WriteToLog('Прикрепляем файл - '+ atFiles);
  with a do
  begin
    mt:=TIdMimeTable.Create;
//    a.ContentType:='application/ms-excel';
    a.ContentType:='multipart/mixed';
//    a.ContentType:=mt.GetFileMIMEType(what);
    a.ContentTransfer:='base64';
  end;
  WriteToLog('Подключение к '+ IdSMTP1.Host);
  if not IdSMTP1.Connected
     then IdSMTP1.Connect;
  if IdSMTP1.Connected then
    begin
      WriteToLog('Подключение к '+ IdSMTP1.Host+' успешное');
      IdSMTP1.Send(Msg);
//      Sleep(5000);
      WriteToLog('Письмо отправлено');
      IdSMTP1.Disconnect;
    end;
  if IdSMTP1.Connected then IdSMTP1.Disconnect;
  mt.Free;
end;
 
 
procedure TForm1.msgInitializeISO(var VTransferHeader: TTransfer;
  var VHeaderEncoding: Char; var VCharSet: String);
begin
    VTransferHeader := bit7; // Бит на кодирование
    VHeaderEncoding:='Q';  // Тип кодировки: Q - QuotedPrintable, B - Base64
    case combobox1.ItemIndex of
     0:VCharSet:='koi8-r' ;
     1:VCharSet:='Windows-1251' ;
    end;
    WriteToLog('Параметры инициализации: кодировка-'+VCharSet+', тип кодирования-'+VHeaderEncoding);
end;



спасиб ) буду тестить)
0
0 / 0 / 0
Регистрация: 27.07.2009
Сообщений: 9
29.07.2009, 19:25
Цитата Сообщение от At@y Посмотреть сообщение
спасиб ) буду тестить)
обрати внимание на последнюю функцию (вернее процедуру) !
0
0 / 0 / 0
Регистрация: 25.07.2009
Сообщений: 21
30.07.2009, 21:19  [ТС]
Цитата Сообщение от zeliboba Посмотреть сообщение
обрати внимание на последнюю функцию (вернее процедуру) !
Запись Лога оО
0
 Аватар для Tree
74 / 74 / 4
Регистрация: 31.05.2009
Сообщений: 243
14.09.2009, 22:20
У меня ошибка. Помогите.

Пишет: "421 Cannot connect to SMTP server 195.93153.24(195.93153.24:25), connect error 10060"

Использую:
  • TIdSMTP
  • TIdMessage

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
    IdSMTP1->UserId = "stest";
    IdSMTP1->Password = "qwerty";
    IdSMTP1->Host = "smtp.ok.kz";
    IdSMTP1->Port = 25;
 
    IdSMTP1->Connect();
 
    if (IdSMTP1->Authenticate())
    {
        TIdMessage* msg = new TIdMessage(Form1);
        msg->CharSet = "Windows-1251";
        msg->Subject = "Тема письма";
        msg->Body->Add("Текст письма");
        msg->From->Text = "stest";
        msg->Recipients->EMailAddresses = "lox@mail.ru";
        msg->Priority = TIdMessagePriority(mpHighest);
 
        IdSMTP1->Send(msg);
        IdSMTP1->Disconnect();
        msg->Free();
    }
}
1
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
15.09.2009, 10:10
Цитата Сообщение от Tree Посмотреть сообщение
У меня ошибка. Помогите.

Пишет: "421 Cannot connect to SMTP server 195.93153.24(195.93153.24:25), connect error 10060"
Возможно файерволл блокирует прогу. Проверьте настройки.
0
 Аватар для Tree
74 / 74 / 4
Регистрация: 31.05.2009
Сообщений: 243
15.09.2009, 18:46
Я вообще выключал Брантмауэр, все ровно. Все та же ошибка... А вот TIdPOP3 - коннектится.
Как быть?
1
4 / 4 / 1
Регистрация: 15.04.2010
Сообщений: 134
10.05.2011, 19:22
[BCC32 Error] Unit1.cpp(29): E2316 'UserId' is not a member of 'TIdSMTP'
Обект IdSMTP1 не понимает свойство UserId, почему?
Может место UserId нужно вписать свойство Username?

Добавлено через 4 минуты
И если я беру свойство Username, компелируетса, но при нажатии на кнопку, типа отправляет но выбивает ощыбку!:

First chance exception at $7C812AEB. Exception class EIdSocketError with message 'Socket Error # 10060
Connection timed out.'. Process Project1.exe (2680)
0
3 / 3 / 1
Регистрация: 27.11.2010
Сообщений: 17
10.05.2011, 20:48
Цитата Сообщение от lebid Посмотреть сообщение
[BCC32 Error] Unit1.cpp(29): E2316 'UserId' is not a member of 'TIdSMTP'
Обект IdSMTP1 не понимает свойство UserId, почему?
Может место UserId нужно вписать свойство Username?

Добавлено через 4 минуты
И если я беру свойство Username, компелируетса, но при нажатии на кнопку, типа отправляет но выбивает ощыбку!:

First chance exception at $7C812AEB. Exception class EIdSocketError with message 'Socket Error # 10060
Connection timed out.'. Process Project1.exe (2680)
попробуй порт поменять с 25 на своего почтовика ( надо погуглить и найти )
Например pop.gmail.com порт 995
использовать защищённое соединение SSL
smtp.gmail.com порт 587

Это так, чисто совет, потому что у меня таже ситуация.
Компилится, всё ок, захожу на почту - пусто.

UserId в TIdSMTP (10 билдер ) нету
надо писать Username
0
4 / 4 / 1
Регистрация: 15.04.2010
Сообщений: 134
10.05.2011, 23:28
Whistler, Я нашол порт, работает, проблема с кодировкой, в письме знаки вопросов,
C++
1
2
IdMessage1->CharSet = "UTF-8";
     IdMessage1->ContentTransferEncoding = "8bit";
Английские понимает а русские нет!!

Добавлено через 1 час 37 минут
А какие можно использовать компоненти для регистрации

Добавлено через 58 минут
?????
0
3 / 3 / 1
Регистрация: 27.11.2010
Сообщений: 17
11.05.2011, 02:16
Цитата Сообщение от lebid Посмотреть сообщение
Whistler, Я нашол порт, работает, проблема с кодировкой, в письме знаки вопросов,
C++
1
2
IdMessage1->CharSet = "UTF-8";
     IdMessage1->ContentTransferEncoding = "8bit";
Английские понимает а русские нет!!

Добавлено через 1 час 37 минут
А какие можно использовать компоненти для регистрации

Добавлено через 58 минут
?????
А кодировку не UTF-8 ,а "Windows-1251" пробовали ?

И ещё глупый вопрос..а что такое ContentTransferEncoding? Сегодня рыскал инет и такого не встречал...для чего этот параметр ?

Добавлено через 5 минут
lebid,
не могли бы вы приложить свой код, который у вас сообщения отсылает...а то у меня наотрез отказывается отправлять...буду очень признателен.
0
4 / 4 / 1
Регистрация: 15.04.2010
Сообщений: 134
11.05.2011, 09:53
Whistler, ок, я ща ухожу на практику, а когда приду выкину исходник проги!!!

Добавлено через 8 минут
Исходник проги "Отправка письма"

Добавлено через 44 секунды
без руской кодировки
0
3 / 3 / 1
Регистрация: 27.11.2010
Сообщений: 17
11.05.2011, 11:22
Цитата Сообщение от lebid Посмотреть сообщение
Whistler, ок, я ща ухожу на практику, а когда приду выкину исходник проги!!!

Добавлено через 8 минут
Исходник проги "Отправка письма"

Добавлено через 44 секунды
без руской кодировки

При запуске вашего проекта у меня выбрасывает ошибки *.bpl библиотек, я так понимаю мой пакет инди застарел, сейчас убегаю на пары, прийду и отпишусь вам.
Кстати и вам советую обновится, проблемы могут быть именно изза этого.

Добавлено через 15 минут
Оказалось,что проблема тут :
C++
1
2
3
4
5
6
7
8
9
10
Edit1->Text="Тема письма...";
    Memo1->Font->Color=clGray;
    Memo1->Text="Текст письма...";
    Edit2->Font->Color=clGray;
    Edit2->Text="Получатель письма...";
    Edit3->Font->Color=clGray;
    Edit3->Text="Постовый ящик отправителя...";
    Edit4->PasswordChar='#0';
    Edit4->Font->Color=clGray;
    Edit4->Text="Пароль ящика отправителя...";
0
4 / 4 / 1
Регистрация: 15.04.2010
Сообщений: 134
11.05.2011, 16:10
Whistler, Я просто работаю в CodeGear RAD Studio 2009 и у меня еще три компонента поставлени, может из-за компонентов у вас вибивает эту ошибку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.05.2011, 16:10

Отправка почты в другом потоке
Народ, мне надо отправить почту в дугом потоке, чтобы програ не висла. С помощью компонентов NMSMTP или IdSMTP. Программу написал, в...

Отправка почты через Outlook
Здравствуйте! Тема избита, но все равно не могу найти решение. Делаю как предлагают в...

Отправка почты без indy
Всем доброго времени суток. У меня такая проблема писал почтовый клиент, всё отправляет, но ошибка кодировки, &quot;перелопатил гору&quot;...

IdSMTP - Отправка почты через прокси
Добрый день. Появился вот такой вопрос: хочу сделать в своей программе отправку сообщения на емайл. Вот код: //на форме INDI //...

Отправка почты с использованием IdSMTP (флаг важности)
Приветствую всех форумчан! Помогите дилетанту, нигде не могу найти ответ на казалось бы совсем простой вопрос. Задача следующая....


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru