Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > работа с почтой


Автор: Dmi3ev 29.5.2008, 14:47
помогите разобраться, почему этот код не работает, я взял его с форума(чтобы никого не обременять своими вопросами, но они возникли):
Код

IdSMTP1->AuthenticationType=atLogin;
IdSMTP1->UserId="pashka-d";
IdSMTP1->Password="10101010";
IdSMTP1->Host="smtp.mail.ru";

IdMessage1->Body->Text="hello";
IdMessage1->From->Text="pashka-d@mail.ru";
IdMessage1->Recipients->EMailAddresses="pashka-d@mail.ru";
IdMessage1->Subject="Тема1";

 new TIdAttachment(IdMessage1->MessageParts,"D:\\50_cent_-__ya_guns_dont_jam.mp3");

IdSMTP1->Connect();
IdSMTP1->Send(IdMessage1);
IdSMTP1->Disconnect();

сообщение "socket error #10057 socket is not connected"

Автор: gather 29.5.2008, 23:52
Отладку делать пробовали? Телепатов тут нет.
На какой строке это вылетает?

Автор: Dmi3ev 30.5.2008, 10:15
gather, строка номер 13, не конектится

Автор: gather 30.5.2008, 15:27
кусок рабочего кода:
Код

AnsiString sFile;
 TIdAttachment *pAttachment;
 sFile = "c:\\a.txt";

 pAttachment = new TIdAttachment(IdMessage1->MessageParts,sFile);
 IdMessage1->ContentType = "multipart/mixed";
 IdMessage1->MessageParts->Add();
 IdMessage1->MessageParts->Items[0] = pAttachment;

 IdMessage1->Body->Text= "Письмо от рассылателя писем";
 IdMessage1->From->Text= "";
 IdMessage1->Recipients->EMailAddresses= "";
 IdMessage1->Subject="Прайс лист от ";

 IdSMTP1->UserId="";
 IdSMTP1->Password="";
 IdSMTP1->Host="smtp.bk.ru";
 IdSMTP1->Port= 25;
 IdSMTP1->Connect();
 IdSMTP1->Send(IdMessage1);
 IdSMTP1->Disconnect();

Автор: Dmi3ev 30.5.2008, 22:24
так не получается, этот код очень похож на мой, такая же ошибка.
может я не так че указываю, я пробовал userid указывать pashka-d и pashka-d@mail.ru. что посоветуете? может у меня почта особенная, там еще чего-то ей надо?
надоело мучаться, буду ждать предложений.

Автор: gather 31.5.2008, 13:00
Цитата(Dmi3ev @  30.5.2008,  22:24 Найти цитируемый пост)
надоело мучаться, буду ждать предложений. 

вывод команды 
Код

telnet smtp.mail.ru 25

в студию.

Автор: vikaz 29.9.2009, 08:39
Всем добрый! Не стал я создавать новую тему, будем развивать эту! Будет полезна.....

Отправляю письма сл.  образом:
Код

nsiString sFile;
TIdAttachment *pAttachment;
sFile = "c:\\123.htm";
pAttachment = new TIdAttachment(IdMessage1->MessageParts,sFile);
IdMessage1->ContentType = "multipart/mixed";
IdMessage1->MessageParts->Add();
IdMessage1->MessageParts->Items[0] = pAttachment;


IdSMTP1->AuthenticationType=atLogin;
IdSMTP1->Port=25;
IdSMTP1->Host="mail.infobox.ru";
IdSMTP1->UserId="vvv@link-service.ru";
IdSMTP1->Password="******";
IdMessage1->From->Text="vvv@link-service.ru";
IdMessage1->Recipients->EMailAddresses="vvv@link-service.ru";
IdMessage1->Subject="Subject";
IdMessage1->Body->Text="Test";
IdSMTP1->Connect();
IdSMTP1->Send(IdMessage1);
IdSMTP1->Disconnect();

В общем все стандартно.
но возникло несколько вопросов:

1. Как отследить отправку письма, т.е. кол-во отправленных байтов? Для этого есть событие OnWork, но он выдает сообщение только в конце, положил компонент IdAntiFreeze, но ничего не изменилось

2. Как бы отправить так письмо, чтобы в теле письма был не просто текст, а html страничка с рисунками, как в прикрепленном файле!
Заранее спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)