Авторизация по SMTP AUTH LOGIN

Тема в разделе "WASM.NETWORKS", создана пользователем protein, 15 мар 2008.

  1. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    Пытаюсь авторизироваться на mail.ru, yandex.ru но везде не получается. Хотя все делаю правильно. Yandex все пропускает, но в конце говорит Authentication Failed, а mail.ru вообще себя странно ведет 8( Может есть у кого нормальный рабочий пример, т.к. все что видел в инете не пашет.

    Код (Text):
    1. ZeroMemory(szBuffer, sizeof(szBuffer));
    2. strcpy(szBuffer,"EHLO smtp.yandex.ru\r\n");
    3. send(hSocket,szBuffer,strlen(szBuffer),0);
    4.  
    5. ZeroMemory(szBuffer, sizeof(szBuffer));
    6. iError = recv(hSocket,szBuffer,sizeof(szBuffer),0);
    7.  
    8. // AUTH LOGIN
    9. ZeroMemory(szBuffer, sizeof(szBuffer));
    10. strcpy(szBuffer,"AUTH LOGIN\r\n");
    11. send(hSocket,szBuffer,strlen(szBuffer),0);
    12.  
    13. ZeroMemory(szBuffer, sizeof(szBuffer));
    14. iError = recv(hSocket,szBuffer,sizeof(szBuffer),0);
    15.  
    16.  
    17. // кидаем Login
    18. ZeroMemory(szBuffer, sizeof(szBuffer));
    19. base64_encode(pszLogin, lstrlen(pszLogin), szBuffer, sizeof(szBuffer));
    20. sprintf(szBuffer,"%s\r\n",szBuffer);
    21. send(hSocket,szBuffer,strlen(szBuffer),0);
    22.  
    23. // ждем ответ
    24. ZeroMemory(szBuffer, sizeof(szBuffer));
    25. iError = recv(hSocket,szBuffer,sizeof(szBuffer),0);
    26.  
    27. // кидаем Password
    28. ZeroMemory(szBuffer, sizeof(szBuffer));
    29. base64_encode(pszPassword, lstrlen(pszPassword), szBuffer, sizeof(szBuffer));
    30. sprintf(szBuffer,"%s\r\n",szBuffer);
    31. send(hSocket,szBuffer,strlen(szBuffer),0);
    32.  
    33. // ждем ответ
    34. ZeroMemory(szBuffer, sizeof(szBuffer));
    35. iError = recv(hSocket,szBuffer,sizeof(szBuffer),0);
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    protein
    Google "rfc smtp"
     
  3. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    wsd
    Гуглил, еслибы не гуглил не спрашивал )))
    Что я делаю не так не пойму.

    Вот сессия с yandex.ru

    1. посылаю > AUTH LOGIN
    2. получаю < 334 VXNlcm5hbWU6
    3. посылаю закодированный login в base64
    4. получаю < 334 UGFzc3dvcmQ6
    5. посылаю закодированный password в base64
    6. получаю отлуп 8( < 535 Authentication Failed
     
  4. protein

    protein New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2006
    Сообщения:
    17
    Адрес:
    Russia
    Наконец-то. Черт возьми, других слов нет. Оказалось библиотека base64, которую я взял на каком-то ресурсе, содержала ошибки в кодировании.
     
  5. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    protein
    никогда не пользуйся сомнительными библиотеками