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);
/
/
/
это его отправка...
помогите...
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівpublic string DecodeFrom64 (string encodedData)
{
byte [] encodedDataAsBytes
= System.Convert.FromBase64String (encodedData);
string returnValue =
System.Text.UTF8Encoding.UTF8.GetString (encodedDataAsBytes);
return returnValue;
} ,
но это еще не самое ужасное...
пока для меня самое ужасное это разобраться где начинается это сообщение... и где кончается...
и что делать с принятыми файлами...
Как это делается конкретно в вашем языке, я не знаю. Но во всяком случае, станет понятно, что происходит поднизом и чего хотеть от SMTP-библиотеки.
Можете почитать мою историю о решении этой проблемы в Lisp’е (lisp.catap.ru/...aracters.html) хотя, думаю, это не сильно поможет.
может я что-то плохо обяснил... но... на сервер руские буквы отсылаются нормально...
depositfiles.com/...files/cj1t0iihf
это как?
Нужно отправлять письма с заголовком Content-encoding: base64. Ну и само тело, собственно, кодировать в base64. По-другому кириллические символы работать не будут. Почитайте в википедии про MIME.
Попробуйте поиграться с кодировкой Win1251 на приём и передачу, когда получится переходите к UTF8.
Поставьте на свою машину smtp сервер (их много) и посмотрите в какой форме приходит письмо на сервер. Происходит ли перекодировка Win1251 в UTF8? Можете выложить данное письмо с сервера на один из бесплатных файл-хостингов?