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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SMTP клиент, транзакции не проходят 
V
    Опции темы
neosapient
  Дата 14.10.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



(Другая ветка форума)
Нашел в рунете пример работы SMTP клиента.
Настроил на себя, а он вот что дает:
Код

get: 220 wsnet.ru ESMTP
send: HELO mail.ru
get: 220 wsnet.ru ESMTP
250 wsnet.ru
send: MAIL FROM:<[email protected]>
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
send: RCPT TO:<[email protected]>
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
send: DATA
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
503 No recipient(s).
send: HELLO, WORLD!!!

.
get: 220 wsnet.ru ESMTP
250 wsnet.ru
250 Ok
554 <[email protected]>: Recipient address rejected: Relay access denied
503 No recipient(s).
502 Error: command not implemented
send: QUIT


554 - транзакции не проходят, так как
503 - неверная последовательность команд

Помогите разобраться, что не так делаю! smile 

Программа записывает в файле "c:\\socket.log" весь лог работ

И еще, что за wsnet.ru такой, я ж его не вызываю?


Это сообщение отредактировал(а) neosapient - 14.10.2006, 14:23

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  TestSocetSMTP.rar 39,14 Kb
PM MAIL   Вверх
ptr
Дата 14.10.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(neosapient @  14.10.2006,  15:35 Найти цитируемый пост)
И еще, что за wsnet.ru такой, я ж его не вызываю?

А что же ты делаешь? Ты же к нему подключаешься (wsnet.ru - 212.96.192.1) :
Код

smtp_address.sin_addr.s_addr = inet_addr("212.96.192.1");


Цитата(neosapient @  14.10.2006,  15:35 Найти цитируемый пост)
Помогите разобраться, что не так делаю!

Всё уже написано: 554 <[email protected]>: Recipient address rejected: Relay access denied


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
neosapient
Дата 14.10.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ptr @  14.10.2006,  15:21 Найти цитируемый пост)
А что же ты делаешь? Ты же к нему подключаешься (wsnet.ru - 212.96.192.1)

А я то думал, зачем эта строка.
Ну тогда бонусный вопрос: как узнать IP по имени сайта  smile 


PM MAIL   Вверх
neosapient
Дата 14.10.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1) А можно пояснить про работу WSAAsyncGetHostByName?
Почему ассинхроная отсылка сообщеня окну?
2) Есть ли синхроная функция, чтоб приложение зависло на некоторое время на этой функции, но зато вернула в консоль только IP (очень не хочется радикально модифицировать этот пример).
Для этого подойдет gethostbyname?


Это сообщение отредактировал(а) neosapient - 14.10.2006, 16:17
PM MAIL   Вверх
ptr
Дата 14.10.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(neosapient @  14.10.2006,  19:54 Найти цитируемый пост)
Ну тогда бонусный вопрос: как узнать IP по имени сайта


Код

  WSAData wData;

  if (WSAStartup(MAKEWORD(2,2), &wData) == SOCKET_ERROR)
  {
    cout << "Winsock init error\n";
    return 1;
  }

  hostent *h = NULL;
  char hostname[80];

  cout << "Enter hostname: ";
  cin >> hostname;
  h = gethostbyname(hostname);

  if (h == NULL)
  {
    cout << "Could not resolve " << hostname << endl;
    return 1;
  }

  cout << "IP: " << inet_ntoa(*(reinterpret_cast<in_addr*>(h->h_addr))) << endl;


Это сообщение отредактировал(а) ptr - 14.10.2006, 16:27


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
neosapient
Дата 14.10.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо, буду знать про gethostbyname().
А теперь супер бонусный вопрос  smile  почему в подкорректированом приложении не происходит соединения.
Если дебагером пробежаться, то сразу после connect(), вызывается recv(), но данные в сокет не приходят и приложение уходит в бесконечное ожидание.



Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  TestSocetSMTP.rar 40,29 Kb
PM MAIL   Вверх
ptr
Дата 14.10.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(neosapient @  14.10.2006,  20:49 Найти цитируемый пост)
очему в подкорректированом приложении не происходит соединения.

Сервер - smtp.mail.ru, а не mail.ru.

Цитата(neosapient @  14.10.2006,  20:49 Найти цитируемый пост)
А теперь супер бонусный вопрос  

И какова глубина вложенности "супер"?

Это сообщение отредактировал(а) ptr - 14.10.2006, 17:37


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
neosapient
Дата 14.10.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



[off topic]
Цитата

И какова вложенность "супер"?

"вложеность" №2 smile 
[/off topic]

------------

Цитата

Сервер - smtp.mail.ru, а не mail.ru

А теперь супер-пупер вопрос ("вложеность" №3)  smile : откуда стало известно, что smtp.mail.ru, а не mail.ru

------------

Ну и наконец вопрос на засыпку ("вложеность" №4)  smile : почему не работает  smile 
Я в переменной hostname заменил значение с "mail.ru" на "smtp.mail.ru"
Но это не помогло (смотри в прилогаемом архиве лог-файл: socket1.log)

Тогда я заменил первую переменную массива строк MailMessage
с "HELO mail.ru\r\n"
на "HELO smtp.mail.ru\r\n"
Но это не помогло (смотри в прилогаемом архиве лог-файл: socket2.log)

Как то начинаю путаться.  smile 

почему не работает  smile 

------------

И еще бонусный вопрос (как можно было догадаться "вложеность" №1) :
В массиве строк MailMessage есть добавки из "\r" и "\n".
Зачем они здесь нужны, в смысле обезательны ли?

------------

[off topic]
Хочу предупредить встречный вопрос, есть ли еще типы "вложености"
реторический - (-1) - не требует ответа
обычный - (0) - простой, обычный, заурядный
на сон грядущий - (5) - не имеет однозначного ответа; задается только врагам, чтоб всю ночь не спали и мучались в поисках ответов...
 smile 

[/off topic]

Это сообщение отредактировал(а) neosapient - 14.10.2006, 17:57

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  socketlog.rar 0,68 Kb
PM MAIL   Вверх
neosapient
Дата 14.10.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А можно прокоментировать концовку вот этой ветки
Там где речь идет про mail.ru

Может я вообще не на тех "кошках" тренеруюсь   smile 

Это сообщение отредактировал(а) neosapient - 14.10.2006, 18:30
PM MAIL   Вверх
neosapient
Дата 14.10.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может кто-нибудь предоставить простой, но работающий пример передачи почты по расширеному SMTP-протоколу, т.е. по стандарту RFC 1427.
На ящики: mail.ru, yandex.ru, rambler.ru
Пытался по протоколу RFC 821, но не нашел ни одного известного мне ящика, чтобы отправка проходила успешно по старой технологии.
PM MAIL   Вверх
ptr
Дата 15.10.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(neosapient @  14.10.2006,  21:56 Найти цитируемый пост)
 откуда стало известно, что smtp.mail.ru, а не mail.ru

Я своих людей не выдаю smile . Если серьёзно, то на сайте mail.ru где-то написано, что smtp.mail.ru ,наверное smile .

Цитата(neosapient @  14.10.2006,  21:56 Найти цитируемый пост)
В массиве строк MailMessage есть добавки из "\r" и "\n".Зачем они здесь нужны, в смысле обезательны ли?

"\r\n" - перевод строки. Они обязательны.

Цитата(neosapient @  15.10.2006,  02:02 Найти цитируемый пост)
 по стандарту RFC 1427.

Что-то я такого не припомню. Может быть RFC2821.

Цитата(neosapient @  14.10.2006,  21:56 Найти цитируемый пост)
"HELO smtp.mail.ru\r\n"

Вообще-то вместо smtp.mail.ru надо слать свой адрес.

Цитата(neosapient @  14.10.2006,  21:56 Найти цитируемый пост)
почему не работает 

Потому что неправильно написана smile . Возьми посмотри лог файл какого-нибудь почтовика. Думаю сильно поможет.

Цитата(neosapient @  14.10.2006,  22:24 Найти цитируемый пост)
А можно прокоментировать концовку вот этой ветки

Что конкретно тебе прокомментировать?


Это сообщение отредактировал(а) ptr - 15.10.2006, 13:50


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
neosapient
Дата 15.10.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что-то я приболел и слабо соображаю  smile 

Цитата(ptr @  15.10.2006,  13:44 Найти цитируемый пост)
Цитата(neosapient @  14.10.2006,  21:56 )
Цитата

"HELO smtp.mail.ru\r\n"


Вообще-то вместо smtp.mail.ru надо слать свой адрес.

А какой у моей машины адрес...   smile 
как узнать smile 
IP посмотрел -> 192.168.1.2

Цитата

Что конкретно тебе прокомментировать?

Там, где свои мысли высказывает oleg1973.


PM MAIL   Вверх
neosapient
Дата 15.10.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот часть статьи: Как отправить e-mail; Способ последний (для мазохистов)   smile 

Так в командной строке вызываю 
"telnet"
Далее 
"open smtp.mail.ru 25"

Затем  
"HELO mail.ru"
Получаю "ОК"

"MAIL FROM:<[email protected]>"
Получаю "ОК"

И наконец
"RCPT TO:<[email protected]>"
выдает ошибку 550 - почтовый ящик не доступен, что за баг  smile 

----
По поводу telnet создал еще одну ветку форума

Это сообщение отредактировал(а) neosapient - 15.10.2006, 19:45
PM MAIL   Вверх
tnt17
Дата 16.10.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



smtp.mail.ru 25 не везде проходит, так как некоторые провы блокируют 25 порт.На мейлру есть альтернативный 2525 .Почтовик узнает об этом просто авторизировавшись по протоколу pop3. 
Вобщем это все хорошо, но на mail.ru нужна авторизация. Есть статья по этой теме: 
http://wasm.ru/article.php?article=simplesmtp  smile 
PM   Вверх
neosapient
Дата 16.10.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



tnt17, спасибо.
Статья очень интерестная.

----
Только в MSDN не тот формат переменных для функций
Base64Encode
Base64Decode

Бонусный вопрос: что инклудить, чтоб у функций был тот же формат передачи парамертров, как и в статье http://wasm.ru/article.php?article=simplesmtp
Где в MSDN для функций описан такой же формат передачи параметров.
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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