Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |
Да Вы батенька извращенец ;) 26.10.01 12:15 Число просмотров: 1017
Автор: Лamo Статус: Незарегистрированный пользователь
|
И ещо надо помещать мылы в <>
Кароче диалог может быть такой:
HELO www.mail.ru\r\n
MAIL FROM: <lamo@mail.ru>\r\n
RCPT TO: <lamo@mail.ru>\r\n
DATA\r\n
From: lamo@mail.ru\r\n
To: lamo@mail.ru\r\n
Subject: test\r\n
.r\n
В конце обязательно надо завершить сообщение точкой \r\n.\r\n
И вообще,
ты не правильно отправляешь и принимаешь данные
нельзя просто писать send() или recv()
например recv вернёт не все данные, а только такова размера, сколько приёмный буффер
|
<programming>
|
трабл с посылкой письма SMTP такое впечатление что программа дозхнет 25.10.01 00:38
Автор: кур Статус: Незарегистрированный пользователь
|
трабл с посылкой письма SMTP такое впечатление что программа дозхнет
по идее она должна работать но что то беспокоит мою душонку
развейте мои сомнения
почему она медленно работает (если она воодще работает
#include <iostream.h>
#include <winsock.h>
main()
{
WSADATA ws;
if(WSAStartup(0x101,&ws)==SOCKET_ERROR)
{
cout<<"bad WSAStartup\n";
return -1;
}
hostent *hs;
hs=gethostbyname("freemail.ukr.net");
if(hs==NULL)
{
cout<<"gethostbyname error\n";
return -1;
}
sockaddr_in addr;
addr.sin_port=htons(25);
addr.sin_family=AF_INET;
memcpy(&addr.sin_addr.s_addr,hs->h_addr,hs->h_length);
SOCKET sock;
sock=socket(PF_INET,SOCK_STREAM,0);
if(sock==INVALID_SOCKET)
{
cout<<"invalid socket\n";
return -1;
}
if(connect(sock,(LPSOCKADDR)&addr,sizeof(addr))==SOCKET_ERROR)
{
cout<<"connect error\n";
return -1;
}
char buf[81];
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"HELO www.mail.ru",16,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"MAIL FROM: hello@mail.ru",24,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"RCPT TO: shopi@ukr.net",22,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"DATA",4,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"hello\n\r.",10,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
send(sock,"QUIT",4,0);
recv(sock,buf,sizeof(buf),0);
cout<<buf<<endl;
WSACleanup();
shutdown(sock,0);
closesocket(sock);
return 0;
}
|
 |
Да Вы батенька извращенец ;) 25.10.01 02:02
Автор: Heromantor Статус: Незарегистрированный пользователь
|
Каждая команда должна заканчиваться символом перевода на новую строку(\r\n). И не проще было бы сделать ф-цию send которая сама бы подставляла длину строки+надобы проверять коды возврата.
|
 |  |
Да Вы батенька извращенец ;) 26.10.01 12:15
Автор: Лamo Статус: Незарегистрированный пользователь
|
И ещо надо помещать мылы в <>
Кароче диалог может быть такой:
HELO www.mail.ru\r\n
MAIL FROM: <lamo@mail.ru>\r\n
RCPT TO: <lamo@mail.ru>\r\n
DATA\r\n
From: lamo@mail.ru\r\n
To: lamo@mail.ru\r\n
Subject: test\r\n
.r\n
В конце обязательно надо завершить сообщение точкой \r\n.\r\n
И вообще,
ты не правильно отправляешь и принимаешь данные
нельзя просто писать send() или recv()
например recv вернёт не все данные, а только такова размера, сколько приёмный буффер
|
|
|