Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 24.03.2010, 17:28   #1
TulskiyTokarev
Новичок
Джуниор
 
Регистрация: 24.03.2010
Сообщений: 1
По умолчанию кирилица в smtp

Всем привет!

Я пишу маленькую програмку, которая просто отправляет эл. почту по smtp. Связь с сервером делаю через winsock. Загвоздка в отображении русских букв в теме письма. Если в хедере при общении с сервером указать "Content-type: text/plain; charset=windows-1251\r\n", то в теле письма русские буквы отображаются нормально. Однако в теме письма стоит "ХХХХХХХХ". Как зделать, чтобы в теме письма русские символы отображались нормально?

Вот мой код:
int main()
{
char mailfrom[35] = "MAIL FROM:<mail@mail.ru>\r\n";
char mailto[256] = "RCPT TO:<testmail@mail.ru>\r\n";
char data[256] = "DATA\r\n";
char from[256] = "From: Админ\r\n";
char to[256] = "To: <testmail@mail.ru>\r\n";
char subject[256] = "Subject: тестовое сообщение\r\n";
char contentType[256] = "Content-type: text/plain; charset=windows-1251\r\n";
char contentTrEnc[256] = "Content-Transfer-Encoding: 8bit";
char message[256] = "Привет, это тест\r\n.\r\n";
char quit[56] = "QUIT\r\n";
........

while(rc!=SOCKET_ERROR)
{
//EHLO
char helo[256] = "EHLO localhost\r\n";
send(s, helo,strlen(helo),0);
rc=recv(s,buf,256,0);
buf[rc]='\0';
printf("\nServer (ehlo1): %s\n",buf);
rc=recv(s,buf,256,0);
buf[rc]='\0';
printf("\nServer (ehlo2): %s\n",buf);
//AUTHORIZATION
char auth[256] = "AUTH LOGIN\r\n";
send(s, auth,strlen(auth),0);
rc=recv(s,buf,256,0);
buf[rc]='\0';
printf("\nServer (auth): %s\n",buf);
char user[256] = "тут кодированно пользовател =\r\n";
send(s, user,strlen(user),0);
rc=recv(s,buf,256,0);
buf[rc]='\0';
printf("\nServer (user): %s\n",buf);
char pass[256] = "тут кодированно пароль\r\n";
send(s, pass,strlen(pass),0);
rc=recv(s,buf,256,0);
buf[rc]='\0';
printf("\nServer (pass): %s\n",buf);
send(s, mailfrom, strlen(mailfrom), 0);
recv(s, buf, 256, 0);
cout <<"mail from :"<<buf<<endl;
//recv(s, buf, 256, 0);
//cout <<"mail from :"<<buf<<endl;
send(s, mailto, strlen(mailto), 0);
recv(s, buf, 256, 0);
cout <<"mail to :"<<buf<<endl;
send(s, data, strlen(data), 0);
recv(s, buf, 256, 0);
cout <<"DATA: "<<buf<<endl;
//здесь говорю, что на русском
send(s,contentType, strlen(contentType), 0);
send(s, from, strlen(from), 0);
send(s, subject, strlen(subject), 0);
send(s, message, strlen(message), 0);
recv(s, buf, 256, 0);
cout <<"Message: "<<buf<<endl;
send(s, quit, strlen(quit), 0);
recv(s, buf, 256, 0);
cout <<"quit: "<<buf<<endl;

.........

Спасибо за ответы.
TulskiyTokarev вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректо отображается кирилица и перенос строки (\n) POPOV PHP 7 11.11.2010 09:44
Кирилица в Паскале zumm Софт 6 16.02.2010 21:41
Delphi SMTP edmynt Помощь студентам 0 27.01.2010 20:57
SMTP Volt Работа с сетью в Delphi 19 09.08.2009 19:48
Кирилица в C++ ROD Помощь студентам 2 06.12.2008 14:50


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS