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

Ваш аккаунт

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

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

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

mail-клиент

11K
21 февраля 2007 года
Sergei_
54 / / 20.02.2007
Привет всем!
Вобщем пишу (пытаюсь) простейший почтовый клиент.
Вопрос по протоколу pop3:если я хочу соеденится с сервером mail.tut.by
например, мне надо (если использовать WIN32 API) создать сокет, связать его с сервером и путём обмена сообщениями могу уже иметь непосредственный доступ к ящику?правильно ли я делаю?и какие классы существуют в MFC (в том числе и для протоколов SMTP, IMAP)
Заранее спасибо.
505
23 февраля 2007 года
vAC
343 / / 28.02.2006
Цитата: Sergei_
Привет всем!
Вобщем пишу (пытаюсь) простейший почтовый клиент.
Вопрос по протоколу pop3:если я хочу соеденится с сервером mail.tut.by
например, мне надо (если использовать WIN32 API) создать сокет, связать его с сервером и путём обмена сообщениями могу уже иметь непосредственный доступ к ящику?правильно ли я делаю?и какие классы существуют в MFC (в том числе и для протоколов SMTP, IMAP)
Заранее спасибо.



Все именно так, ничего особенного. MFC для этого не использовал, но в нем вроде нет реализации почтовых протоколов. Есть HTTP,FTP,Gopher. (версия 6.1)

11K
23 февраля 2007 года
Sergei_
54 / / 20.02.2007
Тогда вопрос такой: какие существуют функции для получения IP удаленного сервера в интернете по его имени? Я использовал ф-ию
gethostbyname(char*), но она выдает неправильный адрес.С чем могут быть связаны ошибки?
505
23 февраля 2007 года
vAC
343 / / 28.02.2006
Именно ее я и использовал при отправке почты. А что она возвращает? Можешь привести кусок кода?
1
23 февраля 2007 года
kot_
7.3K / / 20.01.2000
Перенесенно, так как к общим вопросам ну никак не относится.
16K
24 февраля 2007 года
cdc
27 / / 14.01.2007
не могу понять, зачем народ пишет собственных почтовых клиентов, когда есть уже много готовых?...
11K
24 февраля 2007 года
Sergei_
54 / / 20.02.2007
Цитата: cdc
не могу понять, зачем народ пишет собственных почтовых клиентов, когда есть уже много готовых?...


Просто курсач сделать надо, да и самому на будущее разобраться не мешает.
Привожу кусок кода, как я получаю IP по имени сервера.

Код:
SOCKET s1;
    int len;
    char buf[100],buf1[100];
    char *comp="http://mail.tut.by\0";//например
    struct hostent *hp;
    struct sockaddr_in sin2;
    WSADATA wsaData;
    if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
    {
        printf("Error!!");
        return 0;
    }
    hp=gethostbyname(comp);
   
    for (int i=0;i<4;i++)
    {
        printf("%d",(*(hp->h_addr+i)));
       
        if(i!=3)
            printf(".");
    }


Правильно ли я делаю? Выводит какие-то отрицательные адреса.
Заранее спасибо.
16K
24 февраля 2007 года
cdc
27 / / 14.01.2007
нужно писать
 
Код:
char *comp="mail.tut.by";

и все заработает
11K
24 февраля 2007 года
Sergei_
54 / / 20.02.2007
Цитата: cdc
нужно писать
 
Код:
char *comp="mail.tut.by";

и все заработает



Так тоже писал, результат тот же :(
А вообще кроме этого правильно?

505
25 февраля 2007 года
vAC
343 / / 28.02.2006
Почти все правильно, только в строке
printf("%d",(*(hp->h_addr+i)));
значение представляется знаковым 8-ми битным. Подставь так:
printf("%d",(BYTE)(*(hp->h_addr+i)));
должно сработать.
У меня делалось так:
(BYTE)hp->h_addr_list[0]
думаю разницы никакой, h_addr - вроде как макрос h_addr_list[0]
11K
26 февраля 2007 года
Sergei_
54 / / 20.02.2007
Большое спасибо,айпишники вроде определяет
Теперь проблема законнектиться :)
Вот кусок кода где я соединяюсь с сервером:
Код:
memset((char*)&sin2,'\0',sizeof(sin2));
    sin2.sin_family=AF_INET;             //struct hostent *hp;
    memcpy((char*)&sin2.sin_addr ,hp->h_addr,hp->h_length);
    sin2.sin_port=110;
    s1=socket(AF_INET,SOCK_STREAM,0);
    if(connect(s1,(struct sockaddr *)&sin2,sizeof(sin2))!=0)
    {
        printf("ERROR2!!!!");
        closesocket(s1);
        return 0;
    }

Я немного не понимаю как и чем заполняется структура in_addr,
возможно там что-то неправильно.
16K
26 февраля 2007 года
cdc
27 / / 14.01.2007
 
Код:
sin2.sin_port=htons(110);
11K
26 февраля 2007 года
Sergei_
54 / / 20.02.2007
Чудо свершилось!!!
Я наконец-то законнектился!:)
Всем спасибо за содействие, буду разбираться дальше.
Вопросы буду постить тут :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог