Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SMTP-аутентификация, SMTP-аутентификация 
:(
    Опции темы
rarelang
Дата 4.7.2004, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 15.4.2004

Репутация: нет
Всего: нет



Всем привет

Помогите мне пожалуйста с решением следующей проблемы,

У меня есть простое приложение использующее SMTP протокол для отсылки почты. Алгоритм ядра приложения простой и состоит из следующих этапов:

(тут описываются действия и обмен данными)
1 Соединение с сервером на 25-м протоколе (WinSock/socket соединение)
2 HELO microsoft.com (в качестве примера)
3 MAIL FROM:<[email protected]>
4 RCPT TO:<[email protected]>
5 DATA
6 Привет
7 .
8 QUIT
9 Разрыв соединения (closesocket/close и.т.д.)

Проблема возникает в том, что многие сервера (в частности те с которыми приложение должно работать) требуют аутентификацию и на попытку послать сообщение пользователю, чей ящик располагается на хосте различном от того с чьим SMTP сервисом я работаю (к примеру, при попытке отослать с host1 на host2 выдается ошибка, тогда как с того же хоста на тот же хост все проходит нормально) выдают мне следующую ошибку (на шаге 4-м вышеизложенного листинга):

473 [email protected] relaying prohibited. You should authenticate first

Насколько я понимаю, требуемая аутентификация это не POP-before-SMTP метод (т.е. когда надо залогониться на POP3 для последующей работы с SMTP) (он у меня так и не сработал когда я тестил mail-сервер через telnet), а использование расширений SMTP согласно RFC1651 и в частности RFC2554, и насколько я понимаю здесь имеется в виду использование AUTH.

Если кто-то из вас уже использовал SMTP-аутентификацию то просьба приведите мне пожалуйста пример диалога с сервером, т.е. листинг запросов которые мне ему нужно посылать для аутентификации.

Заранее спасибо за любой ответ.

PM MAIL   Вверх
DENNN
Дата 5.7.2004, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Нет. Судя по ответу сервера он как раз требует сначала произвести POP-аутентификацию и только после этого тебе будет открыт релей на другие домены с этого почтового сервера.
Почтовик коннектится нормально? Твоя прога POP выкачивает? Какие настройки в работающем почтовике?
Трафик снифить не пробовал?

Это сообщение отредактировал(а) DENNN - 5.7.2004, 09:50
PM ICQ   Вверх
rarelang
Дата 5.7.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 15.4.2004

Репутация: нет
Всего: нет



Так я точно уверен что там именно чрез AUTH LOGIN нужно, с POP не работает
PM MAIL   Вверх
Royan
Дата 5.7.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Возможно подойдет альтернативное предложение- воспользоваться CDONTS компонентами вот, например, код демонстрирующий basic аутентификацию как раз подходящую в большинстве случаев:

Цитата
  CoInitialize(NULL);
  {
    IMessagePtr IMsg(
__uuidof(Message));
    IConfigurationPtr iConfig(
__uuidof(Configuration));

    FieldsPtr Flds;
    FieldPtr Fld;
    Flds = iConfig->Fields;

   
// The full strings for field names are used to elucidate the process.
    // The cdosys.h header file contains BSTR constants that
    // can be used to avoid typos, and so on.

   
Flds->Item["http://schemas.microsoft.com/cdo/configuration/smtpserver"]->Value
      = _variant_t("some.smtp.net") ;
    Flds->Item["http://schemas.microsoft.com/cdo/configuration/smtpserverport"]->Value
      = _variant_t((
long)25) ;
    Flds->Item["http://schemas.microsoft.com/cdo/configuration/sendusing"]->Value
      = _variant_t((
long)cdoSendUsingPort) ; // this value is 2
   
Flds->Item["http://schemas.microsoft.com/cdo/configuration/smtpaccountname"]->Value
      = _variant_t("Твое имя") ;
    Flds->Item["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"]->Value
      = _variant_t("\"Твое Имя\" <[email protected]>") ;
    Flds->Item["http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress"]->Value
      = _variant_t("\"Reply Имя\" <[email protected]>") ;
    Flds->Item[_variant_t("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")]->Value
      = _variant_t((
long)cdoBasic) ;
    Flds->Item[_variant_t("http://schemas.microsoft.com/cdo/configuration/sendusername")]->Value
      = _variant_t("Username") ;
    Flds->Item[_variant_t("http://schemas.microsoft.com/cdo/configuration/sendpassword")]->Value
      = _variant_t("very_secret_password") ;
    Flds->Update();

    IMessage* pIMsg = NULL;

    pIMsg->Configuration = iConfig;
    pIMsg->put_To(_bstr_t("\"Roman Yankin\" <[email protected]>"));
//Куда
   
pIMsg->put_From(_bstr_t("\"ThirdPerson\" <[email protected]>"));//Кому
   
pIMsg->put_Sender(_bstr_t("\"Finally\" <[email protected]>"));//
   
pIMsg->put_Subject(_bstr_t("Приветствие"));// sunject
   
pIMsg->put_TextBody(_bstr_t("Ну и содержание письма. \r\n"));



   
// ... compose message; add attachments, and so on.

   
pIMsg->Send();



--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.