Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ Обработка событий в консоли (SMTP)

2.1K
24 июня 2003 года
mona
23 / / 12.05.2003
отправляю файл по SMTP, но выходит ошибка "Authetication failed", отправлять файл мне необходимо в консоли, как в ней обрабатывать события?
460
24 июня 2003 года
Berg
261 / / 27.03.2003
Цитата:
Originally posted by mona
отправляю файл по SMTP, но выходит ошибка "Authetication failed", отправлять файл мне необходимо в консоли, как в ней обрабатывать события?



Какие еще события в консоли?
Если тебе ошибку надо обрабатывать, то делай catch. Да собственно и API у SMTP тоже возвращают коды ошибок, если надо. Ну, а методы класса TNMSMTP (как-то так) и подавно...

2.1K
25 июня 2003 года
mona
23 / / 12.05.2003
В консоли это значит,что я пишу программу Console Wizard. В программе я создаю объект типа TNMSMTP, описываю его методы, запускаю программу на выполнение и выходит эта ошибка.
460
25 июня 2003 года
Berg
261 / / 27.03.2003
Цитата:
Originally posted by mona
В консоли это значит,что я пишу программу Console Wizard. В программе я создаю объект типа TNMSMTP, описываю его методы, запускаю программу на выполнение и выходит эта ошибка.



Ну, и? Если тебе надо, чтобы ошибка не выходила, то проверь login/password...
Если тебе надо обрабатывать появление ошибки, то используй try {} catch () {}
Надо подробнее писать...Или сорсы кидать...

2.1K
25 июня 2003 года
mona
23 / / 12.05.2003
//Отправка сообщения
TNMSMTP *send = new TNMSMTP(0);
if (send->Connected)
send->Disconnect();
send->PostMessage->FromName = "corpsman";
send->PostMessage->FromAddress = "corpsman@liana";
send->PostMessage->ToAddress->Add("mona-t@liana");
send->Host = "172.31.0.1";
send->UserID = "corpsman";
send->PostMessage->Subject = "проба";
send->PostMessage->Body->Text = "ля-ля-ля" ;
send->Connect();
send->SendMail();

delete send;
460
25 июня 2003 года
Berg
261 / / 27.03.2003
Насколько я понимаю, сначала нужно соединениться:

if (send->Connected)
send->Disconnect();
else
{
send->Host = "172.31.0.1";
send->UserID = "corpsman";
send->Connect();
}

Потом уже работать:
send->PostMessage->Subject = "проба";
send->PostMessage->Body->Text = "ля-ля-ля" ;
send->SendMail();

А насчет отправки файла, так это свойство
send->PostMessage->Attachments->...
У тебя написано, что файл не отправляется, а в коде нет и тени намека на отправку файла.

Насчет провала аутентификации:
many servers will not allow sending of mail without a valid User ID.
If a UserID is required but not supplied, the OnAuthenticationFailed event is called.
460
25 июня 2003 года
Berg
261 / / 27.03.2003
Насколько я понимаю, сначала нужно соединениться:

if (send->Connected)
send->Disconnect();
else
{
send->Host = "172.31.0.1";
send->UserID = "corpsman";
send->Connect();
}

Потом уже работать:
send->PostMessage->Subject = "проба";
send->PostMessage->Body->Text = "ля-ля-ля" ;
send->SendMail();

А насчет отправки файла, так это свойство
send->PostMessage->Attachments->...
У тебя написано, что файл не отправляется, а в коде нет и тени намека на отправку файла.

Насчет провала аутентификации:
many servers will not allow sending of mail without a valid User ID.
If a UserID is required but not supplied, the OnAuthenticationFailed event is called.
2.1K
25 июня 2003 года
mona
23 / / 12.05.2003
Все уже отправляется, но возник другой вопрос: данные из файла помящать в само сообщение т.к. сам файл маленький txt-ишник. Если знаешь помоги разобраться, мне надо использовать sstream.
460
25 июня 2003 года
Berg
261 / / 27.03.2003
Цитата:
Originally posted by mona
Все уже отправляется, но возник другой вопрос: данные из файла помящать в само сообщение т.к. сам файл маленький txt-ишник. Если знаешь помоги разобраться, мне надо использовать sstream.



Слава богу, что отправляется.
В чем проблема помещать *.txt-файл в сообщение?
Тем более, что он маленький и текстовый? Бери и помещай. Что значит "надо использовать"? Видимо имелся в виду fstream, а не sstream...

using namespace std;
// create a bi-directional fstream object
fstream inout("fstream.out");
char p[100];
// extract the first line
inout.getline(p,100);

Корректнее через open поставить openmode в ios_base::in

open(const char* s,ios_base::openmode =
ios_base::out | ios_base::in,
long protection = 0666);

Есть потомки ofstream и ifstream (последний как раз для тебя). Лучши их используй.

2.1K
25 июня 2003 года
mona
23 / / 12.05.2003
Нет, мне надо именно через Sstream.
Я думаю это поможет кодировке, т.к. текст этого файла в сообщении не читаем на русском языке:
C:\??? ????? LOG\eicar\eicar.com ??????????? EICAR Test File (NOT a Virus!).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог