Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Socket SMTP "MAIL FROM:<%s>\r\n" CharSet


Автор: Alexoid 6.4.2012, 10:09
Здравствуйте!!!
Образовалась проблемка!!!
Написал почтовый клиент начал внедрять и на одном компе в созданном прогой отчёте увиддел следующее:
Код

EHLO smtp.Mail.Ru
220 **************************
AUTH LOGIN
250-smtp14.mail.ru
250-SIZE 31457280
250-8BITMIME
250-AUTH PLAIN LOGIN
250 STARTTLS
******************
334 **********
********************
334 *********
MAIL FROM:<[email protected]>
535 Incorrect authentication data: username contains non-printable characters for <]uЧ]uЧ]uЧ]uЧ]uЧ]uЧ]uЧ@mail.ru>

Причём 535 ошибка вылезает толко на одном компе с XP Home Eddition, на 3 других компах проверил с XP Professional всё нормально работает.
Вот Код:
Код

    char szMsgLine[512] = "";
    char szLine[255] = "";
    char szBuffer[4096] ="";
    TCHAR *pszTmp=new TCHAR[4096];
    // Send 
    sprintf_s(szMsgLine,512, "EHLO %s%s", pszServerName,szCLRT);
    int b=send(hServer,szMsgLine, strlen(szMsgLine), 0);
    recv(hServer,szBuffer, (int)sizeof(szBuffer), 0);

    //Logined
    sprintf_s(szMsgLine,512,"AUTH LOGIN\r\n");
    send(hServer, szMsgLine, strlen(szMsgLine), 0);
    recv(hServer, szBuffer, sizeof(szBuffer), 0);
    //Login
    sprintf_s(szMsgLine,512,"%s\r\n",((string)base64_encode((const unsigned char*)pszFromAddr,strlen(pszFromAddr))).c_str());
    send(hServer, szMsgLine, strlen(szMsgLine), 0);
    recv(hServer, szBuffer, sizeof(szBuffer), 0);
    //Pwd
    sprintf_s(szMsgLine,512,"%s\r\n",((string)base64_encode((const unsigned char*)pszPWD,strlen(pszPWD))).c_str());
    send(hServer, szMsgLine, strlen(szMsgLine), 0);
    recv(hServer, szBuffer, sizeof(szBuffer), 0);
    
    // Send MAIL FROM
    sprintf_s(szMsgLine,512, "MAIL FROM:<%s>\r\n", pszFromAddr);
    send(hServer,szMsgLine, strlen(szMsgLine), 0);
    recv(hServer, (char *)szBuffer, sizeof(szBuffer), 0);


Автор: xvr 6.4.2012, 12:04
Не иначе ваш pszFromAddr содержит строку на русском языке в кодировке UTF-8

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)