POP кодировка

короче я написал smtp слиент. Отправляет на серваки сообщения нормально... браузер всё нормально читает... кодировки я никакой не ставил... по умолчанию вроде стоит UTF8...
,
но когда церез pop протокол начинаю читать свое письмо... которое я послал из своей проги то кирилица не читается... там я ставлю кодировку Default... при чём кирилица из других писем читается нормально...

что делать...?

пробовал в smtp слиенте ставить разные кодировки сообщения... не помогает...

/

/

/

public NetworkStream NetStrm;

public StreamReader RdStrm;

NetStrm = Server.GetStream ();

RdStrm = new StreamReader (Server.GetStream (), Encoding.Default);

while (szTemp! = “.” )

{

szTemp = RdStrm.ReadLine ();

textBox1.Text.AppendText (szTemp + “\r\n” );

}

/////////////////////////это получение письма...

/

/

/

MailAddress from = new MailAddress (MailFrom);

MailAddress to = new MailAddress (MailTo);

MailMessage message = new MailMessage (from, to);

if (! MailCopyTo.Equals (“‘))

{

string [] addresses = SMTPCopyTo.Split (’; ’);

for (int i = 0; i < addresses.Length; i++)

{

to = new MailAddress (addresses [i]);

message.CC.Add (to);

}

}

message.Subject = SMTPSubject;

message.Body = SMTPBody;

// message.BodyEncoding = Encoding.UTF8;

message.IsBodyHtml = SMTP_HTML;

if (! SMTPAttachment.Equals (’”))

message.Attachments.Add (new Attachment (SMTPAttachment));

message.Priority = SMTPPriority;

SmtpClient Mailclient = new SmtpClient (SMTPServer, SMTPPort);

Mailclient.Credentials = new NetworkCredential (SMTPUsername, SMTPPassword);

Mailclient.Send (message);

/

/

/

это его отправка...

помогите...

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
короче это сообщение нада было перекодировать из base64... вот так например...
public string DecodeFrom64 (string encodedData)
{
byte [] encodedDataAsBytes
= System.Convert.FromBase64String (encodedData);
string returnValue =
System.Text.UTF8Encoding.UTF8.GetString (encodedDataAsBytes);
return returnValue;
} ,
но это еще не самое ужасное...
пока для меня самое ужасное это разобраться где начинается это сообщение... и где кончается...

и что делать с принятыми файлами...

Советую постараться сначала разобраться с SMTP-протоколом и en.wikipedia.org/wiki/MIME На мой взгляд, это не так уж сложно.
Как это делается конкретно в вашем языке, я не знаю. Но во всяком случае, станет понятно, что происходит поднизом и чего хотеть от SMTP-библиотеки.

Можете почитать мою историю о решении этой проблемы в Lisp’е (lisp.catap.ru/...aracters.html) хотя, думаю, это не сильно поможет.

По-другому кириллические символы работать не будут

может я что-то плохо обяснил... но... на сервер руские буквы отсылаются нормально...

Можете выложить данное письмо с сервера на один из бесплатных файл-хостингов?

надеюсь я правильно понял... я просто скачал страницу с сервера... и выложил её...

depositfiles.com/...files/cj1t0iihf

#Content-encoding: base64. Ну и само тело, собственно, кодировать в base64

это как?

Нужно отправлять письма с заголовком Content-encoding: base64. Ну и само тело, собственно, кодировать в base64. По-другому кириллические символы работать не будут. Почитайте в википедии про MIME.

message.BodyEncoding = Encoding.UTF8;

Попробуйте поиграться с кодировкой Win1251 на приём и передачу, когда получится переходите к UTF8.


nobody 41 мин. назад

короче я написал smtp слиент. Отправляет на серваки сообщения нормально... браузер всё нормально читает... кодировки я никакой не ставил... по умолчанию вроде стоит UTF8...

Поставьте на свою машину smtp сервер (их много) и посмотрите в какой форме приходит письмо на сервер. Происходит ли перекодировка Win1251 в UTF8? Можете выложить данное письмо с сервера на один из бесплатных файл-хостингов?

Підписатись на коментарі