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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 24.03.2010, 18:28   #1
TulskiyTokarev
Новичок
 
Регистрация: 24.03.2010
Сообщений: 1
Репутация: 10
По умолчанию кирилица в 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:46.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.