SMTP и аутентификация...........
От: DiMidRoLL Россия www.hackcoding.h11.ru
Дата: 09.08.06 20:15
Оценка:
Все таки я два дня мучился, много получилось, многое нет.........
Вот такой вопрос!

Все таки я хочу отправить письмо, авторизировавшись на сервере! Например на mail.ru
вот код


send(m_SMTPSocket, "HELO server\r\n", 13, 0);
int i = recv(m_SMTPSocket,sBuf,100,0);
sBuf[i]=NULL;
MessageBox(sBuf);

send(m_SMTPSocket, "AUTH LOGIN\r\n", 15, 0);
i = recv(m_SMTPSocket,sBuf,100,0);
sBuf[i]=NULL;
MessageBox(sBuf);

send(m_SMTPSocket, "ТУТ ЛОГИН НА АНГЛ. В BASE64=\n", ТУТ РАЗМЕР, 0);

send(m_SMTPSocket, "ТУТ ПАРОЛЬ НА АНГЛ. В BASE64\n",ТУТ РАЗМЕР, 0);
//i = recv(m_SMTPSocket,sBuf,100,0);
//sBuf[i]=NULL;
//MessageBox(sBuf);


короче я пишу AUTH LOGIN
сервер говорит все ок, авторизацию поддерживает, говори логин
я ему send(m_SMTPSocket, "ТУТ ЛОГИН НА АНГЛ. В BASE64=\n", ТУТ РАЗМЕР, 0);
сервер говорит пароль:
я ему send(m_SMTPSocket, "ТУТ ПАРОЛЬ НА АНГЛ. В BASE64\n", ТУТ РАЗМЕР, 0);
Пишет что типа Invalid base64 data, Yandex пишет, что пара логин и пароль неверны......


1) Какой символ нужно писать в конце логина и пасса? \r \n \r\n \" или ваще ниче? Как только не пробовал...
2) нужно ли после каждого send делать recv? (вроде нет)
3) почему ввобщем авторизация не прет??

В Base64 перевожу верно! Ошибка не в этом, потом обратно перевожу, все правильно.
Помогите с этой долбанной авторизацией!!!
Hello World!;
31 error(s) , 17 warning(s)
Re: SMTP и аутентификация...........
От: AlexeyStaf Россия  
Дата: 10.08.06 04:42
Оценка:
Здравствуйте, DiMidRoLL, Вы писали:

DMR>...


На сколько я понимаю, необходимо считывать ответы сервера. В каждом ответе содержится результат последней выполненной команды.
Вот здесь
Автор: Flamer
Дата: 25.07.03
про аутентификацию.
-----
С уважением, Алексей.
Re: SMTP и аутентификация...........
От: Nikolay_Ch Россия  
Дата: 10.08.06 05:33
Оценка:
DMR>1) Какой символ нужно писать в конце логина и пасса? \r \n \r\n \" или ваще ниче? Как только не пробовал...
Такой-же, как и везде во всех протоколах такого типа: \r\n (перепутывать нельзя).

DMR>2) нужно ли после каждого send делать recv? (вроде нет)

Нужно обязательно дожидаться ответа сервера — это не IMAP4.

DMR>3) почему ввобщем авторизация не прет??

Он-же тебе говорит — "Invalid base64 data" — значит что-то с теми данными, которые ты передал.
Re[2]: SMTP и аутентификация...........
От: Jax Россия  
Дата: 10.08.06 09:48
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

DMR>>2) нужно ли после каждого send делать recv? (вроде нет)

N_C>Нужно обязательно дожидаться ответа сервера — это не IMAP4.

+

DMR>>3) почему ввобщем авторизация не прет??

N_C>Он-же тебе говорит — "Invalid base64 data" — значит что-то с теми данными, которые ты передал.

Это скорее всего (99,9%) из-за двух последовательных send'ов, которые на сервер приходят вместе...
Re[3]: SMTP и аутентификация...........
От: Nikolay_Ch Россия  
Дата: 10.08.06 10:13
Оценка:
Jax>Это скорее всего (99,9%) из-за двух последовательных send'ов, которые на сервер приходят вместе...
Кстати да — очень может быть...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.