The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"помогите разобраться с SMTP"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"помогите разобраться с SMTP"
Сообщение от darlock Искать по авторуВ закладки on 18-Дек-02, 18:21  (MSK)
собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений, он на ура коннектится с SMTP сервером но вот передавать ему ничего не желает!
пороблема вот в ентом куске!
/* connect to server */
if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
{
perror ("connect");
return 1;
}

sprintf (buff, "VRFY   ");
write (socket_fd, buff, strlen(buff));
while (1){
if (read (socket_fd, buff, 10000) == 0) return 0;
fwrite (buff, sizeof (char), characters_read, stdout);
        }

все что он мне выдает это - 220 Hello! и т.д.\

в чем гвозди?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: помогите разобраться с SMTP"
Сообщение от LinaS emailИскать по авторуВ закладки on 18-Дек-02, 18:45  (MSK)
>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>он на ура коннектится с SMTP сервером но вот передавать ему
>ничего не желает!
>пороблема вот в ентом куске!
>/* connect to server */
> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
> {
>  perror ("connect");
>  return 1;
> }
>
> sprintf (buff, "VRFY   ");
> write (socket_fd, buff, strlen(buff));
> while (1){
> if (read (socket_fd, buff, 10000) == 0) return 0;

я когда-то писала smtp - клиента и была похожая проблема
вот как раз в верхней строке:
он ждет, пока не примет 10000 байт...
решилось это следующим:

#include <fcntl.h>

<some code>
и перед чтением из сокета:

fcntl( sock, F_SETFL, O_NONBLOCK );

после этого у меня все заколосилось, может, и у тебя в том же дело? :)

> fwrite (buff, sizeof (char), characters_read, stdout);
>        }
>
>все что он мне выдает это - 220 Hello! и т.д.\
>
>в чем гвозди?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: помогите разобраться с SMTP"
Сообщение от darlock Искать по авторуВ закладки on 18-Дек-02, 19:17  (MSK)
>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>он на ура коннектится с SMTP сервером но вот передавать ему
>>ничего не желает!
>>пороблема вот в ентом куске!
>>/* connect to server */
>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>> {
>>  perror ("connect");
>>  return 1;
>> }
>>
>> sprintf (buff, "VRFY   ");
>> write (socket_fd, buff, strlen(buff));
>> while (1){
>> if (read (socket_fd, buff, 10000) == 0) return 0;
>
>я когда-то писала smtp - клиента и была похожая проблема
>вот как раз в верхней строке:
>он ждет, пока не примет 10000 байт...
>решилось это следующим:
>
>#include <fcntl.h>
>
><some code>
>и перед чтением из сокета:
>
>fcntl( sock, F_SETFL, O_NONBLOCK );
>
>после этого у меня все заколосилось, может, и у тебя в том
>же дело? :)
>
>> fwrite (buff, sizeof (char), characters_read, stdout);
>>        }
>>
>>все что он мне выдает это - 220 Hello! и т.д.\
>>
>>в чем гвозди?

так вот дело то как раз в том что SMTP сервер не воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO - все побоку!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: помогите разобраться с SMTP"
Сообщение от lavr emailИскать по авторуВ закладки on 18-Дек-02, 19:19  (MSK)
>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>ничего не желает!
>>>пороблема вот в ентом куске!
>>>/* connect to server */
>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>> {
>>>  perror ("connect");
>>>  return 1;
>>> }
>>>
>>> sprintf (buff, "VRFY   ");
>>> write (socket_fd, buff, strlen(buff));
>>> while (1){
>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>
>>я когда-то писала smtp - клиента и была похожая проблема
>>вот как раз в верхней строке:
>>он ждет, пока не примет 10000 байт...
>>решилось это следующим:
>>
>>#include <fcntl.h>
>>
>><some code>
>>и перед чтением из сокета:
>>
>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>
>>после этого у меня все заколосилось, может, и у тебя в том
>>же дело? :)
>>
>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>        }
>>>
>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>
>>>в чем гвозди?
>
>так вот дело то как раз в том что SMTP сервер не
>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>все побоку!

руками попробуй и посмотри что и как

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: помогите разобраться с SMTP"
Сообщение от LinaS emailИскать по авторуВ закладки on 18-Дек-02, 19:21  (MSK)
>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>ничего не желает!
>>>пороблема вот в ентом куске!
>>>/* connect to server */
>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>> {
>>>  perror ("connect");
>>>  return 1;
>>> }
>>>
>>> sprintf (buff, "VRFY   ");
>>> write (socket_fd, buff, strlen(buff));
>>> while (1){
>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>
>>я когда-то писала smtp - клиента и была похожая проблема
>>вот как раз в верхней строке:
>>он ждет, пока не примет 10000 байт...
>>решилось это следующим:
>>
>>#include <fcntl.h>
>>
>><some code>
>>и перед чтением из сокета:
>>
>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>
>>после этого у меня все заколосилось, может, и у тебя в том
>>же дело? :)
>>
>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>        }
>>>
>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>
>>>в чем гвозди?
>
>так вот дело то как раз в том что SMTP сервер не
>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>все побоку!

рассинхронизировано возможно...
может, команду шлешь раньше, чем ответ примешь?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: помогите разобраться с SMTP"
Сообщение от darlock Искать по авторуВ закладки on 18-Дек-02, 19:38  (MSK)
>>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>>ничего не желает!
>>>>пороблема вот в ентом куске!
>>>>/* connect to server */
>>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>>> {
>>>>  perror ("connect");
>>>>  return 1;
>>>> }
>>>>
>>>> sprintf (buff, "VRFY   ");
>>>> write (socket_fd, buff, strlen(buff));
>>>> while (1){
>>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>>
>>>я когда-то писала smtp - клиента и была похожая проблема
>>>вот как раз в верхней строке:
>>>он ждет, пока не примет 10000 байт...
>>>решилось это следующим:
>>>
>>>#include <fcntl.h>
>>>
>>><some code>
>>>и перед чтением из сокета:
>>>
>>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>>
>>>после этого у меня все заколосилось, может, и у тебя в том
>>>же дело? :)
>>>
>>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>>        }
>>>>
>>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>>
>>>>в чем гвозди?
>>
>>так вот дело то как раз в том что SMTP сервер не
>>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>>все побоку!
>
>рассинхронизировано возможно...
>может, команду шлешь раньше, чем ответ примешь?


и руками пробовал!
а с синхронизацией!
пробовал даже так!
read (socket_fd, buff, 10000)ж
fwrite (....);

и тока потом
sprintf (...)
write (...)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: помогите разобраться с SMTP"
Сообщение от darlock Искать по авторуВ закладки on 18-Дек-02, 19:56  (MSK)
>>>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>>>ничего не желает!
>>>>>пороблема вот в ентом куске!
>>>>>/* connect to server */
>>>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>>>> {
>>>>>  perror ("connect");
>>>>>  return 1;
>>>>> }
>>>>>
>>>>> sprintf (buff, "VRFY   ");
>>>>> write (socket_fd, buff, strlen(buff));
>>>>> while (1){
>>>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>>>
>>>>я когда-то писала smtp - клиента и была похожая проблема
>>>>вот как раз в верхней строке:
>>>>он ждет, пока не примет 10000 байт...
>>>>решилось это следующим:
>>>>
>>>>#include <fcntl.h>
>>>>
>>>><some code>
>>>>и перед чтением из сокета:
>>>>
>>>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>>>
>>>>после этого у меня все заколосилось, может, и у тебя в том
>>>>же дело? :)
>>>>
>>>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>>>        }
>>>>>
>>>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>>>
>>>>>в чем гвозди?
>>>
>>>так вот дело то как раз в том что SMTP сервер не
>>>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>>>все побоку!
>>
>>рассинхронизировано возможно...
>>может, команду шлешь раньше, чем ответ примешь?
>
>
>и руками пробовал!
>а с синхронизацией!
>пробовал даже так!
>read (socket_fd, buff, 10000)ж
>fwrite (....);
>
>и тока потом
>sprintf (...)
>write (...)


а на fcntl вылетает куча 220 приветствий!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: помогите разобраться с SMTP"
Сообщение от LinaS emailИскать по авторуВ закладки on 18-Дек-02, 20:43  (MSK)
>>>>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>>>>ничего не желает!
>>>>>>пороблема вот в ентом куске!
>>>>>>/* connect to server */
>>>>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>>>>> {
>>>>>>  perror ("connect");
>>>>>>  return 1;
>>>>>> }
>>>>>>
>>>>>> sprintf (buff, "VRFY   ");
>>>>>> write (socket_fd, buff, strlen(buff));
>>>>>> while (1){
>>>>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>>>>
>>>>>я когда-то писала smtp - клиента и была похожая проблема
>>>>>вот как раз в верхней строке:
>>>>>он ждет, пока не примет 10000 байт...
>>>>>решилось это следующим:
>>>>>
>>>>>#include <fcntl.h>
>>>>>
>>>>><some code>
>>>>>и перед чтением из сокета:
>>>>>
>>>>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>>>>
>>>>>после этого у меня все заколосилось, может, и у тебя в том
>>>>>же дело? :)
>>>>>
>>>>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>>>>        }
>>>>>>
>>>>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>>>>
>>>>>>в чем гвозди?
>>>>
>>>>так вот дело то как раз в том что SMTP сервер не
>>>>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>>>>все побоку!
>>>
>>>рассинхронизировано возможно...
>>>может, команду шлешь раньше, чем ответ примешь?
>>
>>
>>и руками пробовал!
>>а с синхронизацией!
>>пробовал даже так!
>>read (socket_fd, buff, 10000)ж
>>fwrite (....);
>>
>>и тока потом
>>sprintf (...)
>>write (...)
>
>
>а на fcntl вылетает куча 220 приветствий!

хм...
linas@vzljot.ru
шли код - посмотрим, так неясно...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: помогите разобраться с SMTP"
Сообщение от lavr emailИскать по авторуВ закладки on 19-Дек-02, 13:41  (MSK)
>>>>>>собсно проблема в следующем... пишу на С SMTP клиента для отправки сообщений,
>>>>>>он на ура коннектится с SMTP сервером но вот передавать ему
>>>>>>ничего не желает!
>>>>>>пороблема вот в ентом куске!
>>>>>>/* connect to server */
>>>>>> if (connect (socket_fd, &name, sizeof (struct sockaddr_in)) == -1)
>>>>>> {
>>>>>>  perror ("connect");
>>>>>>  return 1;
>>>>>> }
>>>>>>
>>>>>> sprintf (buff, "VRFY   ");
>>>>>> write (socket_fd, buff, strlen(buff));
>>>>>> while (1){
>>>>>> if (read (socket_fd, buff, 10000) == 0) return 0;
>>>>>
>>>>>я когда-то писала smtp - клиента и была похожая проблема
>>>>>вот как раз в верхней строке:
>>>>>он ждет, пока не примет 10000 байт...
>>>>>решилось это следующим:
>>>>>
>>>>>#include <fcntl.h>
>>>>>
>>>>><some code>
>>>>>и перед чтением из сокета:
>>>>>
>>>>>fcntl( sock, F_SETFL, O_NONBLOCK );
>>>>>
>>>>>после этого у меня все заколосилось, может, и у тебя в том
>>>>>же дело? :)
>>>>>
>>>>>> fwrite (buff, sizeof (char), characters_read, stdout);
>>>>>>        }
>>>>>>
>>>>>>все что он мне выдает это - 220 Hello! и т.д.\
>>>>>>
>>>>>>в чем гвозди?
>>>>
>>>>так вот дело то как раз в том что SMTP сервер не
>>>>воспринимает команды! (( т.е ему хоть MAIL To:... хоть HELO -
>>>>все побоку!
>>>
>>>рассинхронизировано возможно...
>>>может, команду шлешь раньше, чем ответ примешь?
>>
>>
>>и руками пробовал!
>>а с синхронизацией!
>>пробовал даже так!
>>read (socket_fd, buff, 10000)ж
>>fwrite (....);
>>
>>и тока потом
>>sprintf (...)
>>write (...)
>
>
>а на fcntl вылетает куча 220 приветствий!

надо было прислать ручной лог от telnet hostname 25

helo
ehlo
vrfy

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру