creater |
Отправлено: 09.12.2003, 15:43 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 120
|
Народ, если не жалко и не в лом то, запостите пример работы с Indy компонентами — TIdSMTP и TIdMessage.
Очень срочно необходимо отослать письмо с аутентификацией, а у компонента NMSMTP из Fast Net нет Properties — Password. Что крайне необходимо.
Заранее большое спасибо :-) |
|
Admin |
Отправлено: 09.12.2003, 20:13 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Не жалко, вот полностью рабочий пример
(конечно правильно укажите свое
имя, пароль, имя почтового сервера)
CODE |
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TIdMessage* M = new TIdMessage(Form1);
M->Body->Add(" First string body");
M->Body->Add(" Second string body");
M->From->Text = "\"Владимир\" <support@cbuilder.ru>"; //отправитель
M->Recipients->Add();
M->Recipients->Items[0]->Text = "\"Вера\" <klassiks@cnt.ru>";//получатель
M->Subject = "Тема письма"; //Тема письма
IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->Host = "post.cnt.ru"; // имя почтового сервера
IdSMTP1->UserId = "klassiks"; // имя
IdSMTP1->Password = "*****"; // Здесь пароль вместо *****
IdSMTP1->Connect();
if(IdSMTP1->Connected()){
IdSMTP1->Send(M);
IdSMTP1->Disconnect();
}
delete M;
}
|
Отредактировано Admin — 09/12/2003, 21:37
|
|
Admin |
Отправлено: 09.12.2003, 20:34 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Не знаю, но возможно и есть способ указать пароль
для NMSMTP. не уверен, но посмотрите интресный пример
у китайцев (или кто там они) не разбирался:
http://www.china-askpro.com/msg42/qa51.shtml
|
|
creater |
Отправлено: 09.12.2003, 21:22 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 120
|
QUOTE (Admin @ 09/12/2003, 21:15) | Не жалко, вот полностью рабочий пример
(конечно правильно укажите свое
имя, пароль, имя почтового сервера) |
Большое спасибо за ответ!
Правда к тому времени когда Я увидел Ваш ответ уже отсылал письмо :-))
Но у меня осталась еще одна проблема. Ни как не могу прикрепить файл к письму. |
|
Nick |
Отправлено: 10.12.2003, 08:53 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
Я не делал TIdMessage
if ( !NMSMTP1->Connected ) NMSMTP1->Connect();
if ( NMSMTP1->Connected )
{
NMSMTP1->PostMessage->FromAddress = ini->ReadString( "Mail", "FromAdress", "" );
NMSMTP1->PostMessage->FromName = ini->ReadString( "Mail", "FromName", "" );
NMSMTP1->PostMessage->Subject = "Order from other Filial";
NMSMTP1->PostMessage->ToAddress->Clear();
NMSMTP1->PostMessage->ToAddress->Add(IBQ_FilialsWEMAIL->AsString);
/* присоединение файла asFileName к письму */
NMSMTP1->PostMessage->Attachments->Add(asFileName);
NMSMTP1->PostMessage->Body->Clear();
NMSMTP1->PostMessage->Body->Add("See attachment.");
NMSMTP1->SendMail();
NMSMTP1->Disconnect();
ShowMessage(("Заявка ушла по адресу "+IBQ_FilialsWEMAIL->AsString+". Файл — "+asFileName).c_str());
} else ShowMessage("Ошибка соединения с SMTP сервером.");
|
|
Admin |
Отправлено: 10.12.2003, 12:14 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Вставьте между
M->Subject = "Тема письма"; //Тема письма
и
IdSMTP1->AuthenticationType = atLogin;
CODE |
M->Subject = "Тема письма"; //Тема письма
// прикладываем файл myFile.txt
TIdAttachment* att = new TIdAttachment(M->MessageParts,"c:\\myFile.txt");
M->MessageParts->Add();
M->MessageParts->Items[0] = att;
IdSMTP1->AuthenticationType = atLogin;
|
Для Nick:
А пароль где указать ??? В NMSMTP1 его нет.
Отредактировано Admin — 10/12/2003, 13:20
|
|
Nick |
Отправлено: 10.12.2003, 13:05 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
При отправке писем, мне кажется, он и не нужен.
Я не совсем уверен в этом т.к. видел на форуме вопросы типа:
NMSMTP не работает с платными серверами.
Пример WinRoute Pro.
Ставишь SMTP server smtp.yandex.ru и все.
Письма отправляются без проблем, то есть проблемы бывают но не из-за этого.
У меня проблема с кодировкой может в IdSMTP решено это дело.
|
|
FoxVID |
Отправлено: 02.03.2004, 19:33 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 29
|
CODE | void __fastcall TForm1::Button2Click(TObject *Sender)
{
TIdMessage* M = new TIdMessage(Form1);
M->Body->Add(" First string body");
M->Body->Add(" Second string body");
M->From->Text = "\"Владимир\" <support@cbuilder.ru>"; //отправитель
M->Recipients->Add();
M->Recipients->Items[0]->Text = "\"Вера\" <klassiks@cnt.ru>";//получатель
M->Subject = "Тема письма"; //Тема письма
IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->Host = "post.cnt.ru"; // имя почтового сервера
IdSMTP1->UserId = "klassiks"; // имя
IdSMTP1->Password = "*****"; // Здесь пароль вместо *****
IdSMTP1->Connect();
if(IdSMTP1->Connected()){
IdSMTP1->Send(M);
IdSMTP1->Disconnect();
}
delete M;
} |
В результате выполнения получаю ошибку:
CODE | Точка входа в процедуру @Idwinsock@initialization$qqrv не найдена в библиотеке DLL indy60.bpl |
Кто подскажет, в чем причина? |
|