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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен код smtp клиента с авторизацией 
:(
    Опции темы
Satell
Дата 12.8.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



сабж без наворотов
PM MAIL   Вверх
jonie
Дата 12.8.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



а собстна в чем проблемы написания своего?
или поиска уже готового в гугле том же?)
народ тут поиском информации за Вас НЕ занимается, максимум могут посоветовать библиотеку)
http://developer.berlios.de/projects/libsmtp/
http://www.stafford.uklinux.net/libesmtp/


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
drZmeu
Дата 13.8.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вопрос уже обсуждался на форуме есть исходник!!!! Ищи!
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
neosapient
Дата 26.8.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я тут на форуме флудил, флудил и нафлудил результат
http://forum.vingrad.ru/index.php?showtopi...st&p=896942
PM MAIL   Вверх
drZmeu
  Дата 26.8.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



На второй раз выкладываю!!!
Код

#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALING:512 /SECTION:.text,EWRX /IGNORE:4028")
#pragma comment(linker,"/ENTRY:WinMain")
#include <winsock2.h>                            //Зоголовок для работы с сокетами
#include <windows.h>                            //Включает почти все WinAPI функции
#pragma comment (lib,"ws2_32.lib")                    //Нужная библеотека для работы с сокетами
#include <atlenc.h>
#define server "smtp.mail.ru"                        //Сервер который будем юзать
#define port 25                                //порт отправки
DWORD WINAPI NTSendMess(LPVOID lParam)
{
char szRecvBuf[1024],szSendBuf[1024];                    //2 массива 1-для приёма данных 2-для отправки
SOCKET s=(SOCKET)lParam;                        //переносим сокет в эту процедуру
int lenbuffer;                                //
char autbuff[240];                            //
BYTE login[]="login_test";
BYTE password[]="password_test";
recv(s,szRecvBuf,sizeof(szRecvBuf),0);                    //Получаем даные
if(szRecvBuf[0]=='2' && szRecvBuf[1]=='2' && szRecvBuf[2]=='0')        //Парсинг читаем первые 3 цифры от сервера
{                                    //Если всё ок и сервер поздаровался с нами то мы отсылаем ему привет
strcpy(szSendBuf,"helo localhost \r\n");                //копируем в буфер строку так правильнее ;)
send(s,szSendBuf,sizeof(szSendBuf),0);                    //Отправляем привет ;)
}
//--------------------------------------------------------------
recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//--------------------------------------------------------------
if(szRecvBuf[0]=='2' && szRecvBuf[1]=='5' && szRecvBuf[2]=='0')
{
strcpy(szSendBuf,"AUTH LOGIN \r\n");
send(s,szSendBuf,sizeof(szSendBuf),0);
}
//---------------------------------------------------------------
recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//---------------------------------------------------------------
//Тут проверка ответа от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(login,sizeof(login)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем логи.
//Опять проверка от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(password,sizeof(password)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем пароль.
//Опять проверка от сервера.
//---------------------------------------------------------------
//Опять проверка от сервера.
//-----***-----    
                                    //Тут можно воткнуть опять парсинг и приём от сервера месаг
closesocket(s);                                //Закрываем сокет
WSACleanup();                                //
return 0;
}
DWORD WINAPI NTConnect(LPVOID lParam)                    /*Процедура конекта*/
{
SOCKET s;
struct sockaddr_in local;
struct hostent *host=NULL;
HANDLE NTMess;
DWORD iMess;
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);                /*Создаём сокет*/
local.sin_addr.s_addr=inet_addr(server);                /*привязываем адрес*/
local.sin_family=AF_INET;                        /**/
local.sin_port=htons(port);
if(local.sin_addr.s_addr==INADDR_NONE)
{
    host=gethostbyname(server);                    //пытаемся перевести в ip
    if(host == NULL)
    {
        MessageBox(0,"Server not resolves","Error",MB_OK);
    return 1;    
    }
    CopyMemory(&local.sin_addr,host->h_addr_list[0],
               host->h_length);
}
connect(s,(struct sockaddr *)&local,sizeof(local));            //Конектимся к адресу
NTMess=CreateThread(NULL,0,NTSendMess,(LPVOID)s,0,&iMess);
//---
return 0;
}
    
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
WSADATA wsa;
MSG msg;
HACCEL hAccelTable;
if(WSAStartup(0x0202,&wsa)!=0)                        //обьевляем сокеты версии 2.2
{
return 1;                                //Если ошибка то пытаемся обьявить ещё разок
}
HANDLE hNet;
DWORD iNet;
hNet=CreateThread(NULL,0,NTConnect,0,0,&iNet);                //создаём новый поток...
hAccelTable = LoadAccelerators(hInstance, NULL);
while(GetMessage(&msg,NULL,0,0))                    //принимаем сообшения
{
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
}
WSACleanup();                                //Если неуспешно закрываем библеотеку
return 0;
}

--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
DominiK
Дата 25.10.2007, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.3.2007
Где: Россия, Омск

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



Нужен код авторизации + SSL smile 
PM MAIL   Вверх
drZmeu
  Дата 25.10.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



МММММммм...???...
Доменик поясни.
Код

recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//--------------------------------------------------------------
if(szRecvBuf[0]=='2' && szRecvBuf[1]=='5' && szRecvBuf[2]=='0')
{
strcpy(szSendBuf,"AUTH LOGIN \r\n");
send(s,szSendBuf,sizeof(szSendBuf),0);
}
//---------------------------------------------------------------
recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//---------------------------------------------------------------
//Тут проверка ответа от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(login,sizeof(login)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем логи.
//Опять проверка от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(password,sizeof(password)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем пароль.

Чем тебя эта реализация не устраивает?

--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
DominiK
Дата 25.10.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.3.2007
Где: Россия, Омск

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



Цитата(drZmeu @ 25.10.2007,  20:13)
МММММммм...???...
Доменик поясни.
Код

recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//--------------------------------------------------------------
if(szRecvBuf[0]=='2' && szRecvBuf[1]=='5' && szRecvBuf[2]=='0')
{
strcpy(szSendBuf,"AUTH LOGIN \r\n");
send(s,szSendBuf,sizeof(szSendBuf),0);
}
//---------------------------------------------------------------
recv(s,szRecvBuf,sizeof(szRecvBuf),0);
//---------------------------------------------------------------
//Тут проверка ответа от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(login,sizeof(login)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем логи.
//Опять проверка от сервера.
//---------------------------------------------------------------
lenbuffer=sizeof(autbuff);
Base64Encode(password,sizeof(password)-1,autbuff,&lenbuffer,ATL_BASE64_FLAG_NONE);
strcat(autbuff,"\r\n");
send(s,autbuff,sizeof(autbuff),0);                    //отправляем пароль.

Чем тебя эта реализация не устраивает?

Устраивает smile  Я имел ввиду, что я ищу код авторизации + SSL. Вообщем, Gmail использует это.

http://ru.wikipedia.org/wiki/SSL
PM MAIL   Вверх
jonie
Дата 25.10.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



SSLv3 aka TSL это протокол канального уровня, т.о. авторизация от него не должна зависеть, зашифруйте канал и используйте как обычно... или я чего-то не понимаю...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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