Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

Проблемой с кодировкой E-Mail когда прикрепляю файлы   Найти похожие ветки 

 
Inna_Z   (2007-06-05 12:55) [0]

Ниже приведён код функции которая отправляет почту по имейлу.

procedure TDiagReportGenerator.SendReport;
var
   Files : string;
begin
  // Формируем содержимое письма
 GenerateReport;

 MailMessage.From.Name := "AsBase Client";
 MailMessage.Recipients.EMailAddresses := FEmail;
 MailMessage.ContentType:= "text/html";
 MailMessage.CharSet:= "Windows-1251";

 MailMessage.Subject := "Информация об ошибке";
 MailMessage.Body.Add(ReportText);

 Files := DiagnosticCollector.ClientInfo.Pathscreen;
 TIdAttachment.Create(MailMessage.MessageParts, Files);

 //send mail
 try
   try
     SMTP.Connect(1000);
     SMTP.Send(MailMessage);
   except on E:Exception do
     ShowMessage("ERROR: " + E.Message);
   end;
 finally
   if SMTP.Connected then SMTP.Disconnect;
 end;

end;


если не прикреплять файлик то письмо оправляется в нормальной кодировке, русский шрифт отображается как надо

Но только стоит добавить в писмо файлик
 Files := DiagnosticCollector.ClientInfo.Pathscreen;
 TIdAttachment.Create(MailMessage.MessageParts, Files);

(в данном случае это jpeg картинка)
то само письмо начинает приходить в неправильной кодировке. Почту принимаю аутлуком, он даже перестаёт после этого понимать что это HTML формат.

Что я тут пропустила и сделала не так?
Какие ещё параметры и настройки нужны, чтобы правильно прикрепить файлы к письму?


 
clickmaker ©   (2007-06-05 13:01) [1]

а если

TextPart := TIdText.Create(MailMessage.MessageParts);
TextPart.Body.Text := ReportText;
TextPart.ContentType := "text/html";
TextPart.ContentTransfer := "8bit";

вместо

MailMessage.Body.Add(ReportText);


 
Inna_Z   (2007-06-05 13:06) [2]

Тогда приходит только файлик без текста письма


 
Inna_Z   (2007-06-05 13:13) [3]

счётчик
 MailMessage.MessageParts.TextPartCount  
 после выполнения того кода остаётся равен 0
 Мистика


 
clickmaker ©   (2007-06-05 13:38) [4]

Content-Type multipart/mixed может надо указать?
В принципе, насколько я понял, TextPart эквиваленто Body, только в случае с боди инди сама эту текстовую часть создаст


 
Inna_Z   (2007-06-05 13:47) [5]

Не важно что там multipart/mixed или text/html, всё равно таким способом происходит что-то по другому, так как эта текстовая часть вообще не посылается.


 
Inna_Z   (2007-06-05 13:47) [6]

Не важно что там multipart/mixed или text/html, всё равно таким способом происходит что-то по другому, так как эта текстовая часть вообще не посылается.


 
Inna_Z   (2007-06-05 13:49) [7]

а если так, то текст есть но всё равно не с той кодировкой:

 MailMessage.From.Name := "Asbase Client";
 MailMessage.Recipients.EMailAddresses := FEmail;
 MailMessage.ContentType:= "multipart/mixed";
 MailMessage.CharSet:= "Windows-1251";
 MailMessage.Subject := "Информация об ошибке";
 MailMessage.Body.Add(ReportText);


 
Inna_Z   (2007-06-05 14:52) [8]

Вобщем опытным путём получилось заставить работать это таким способом:

  // Формируем содержимое письма
 GenerateReport;

 MailMessage.From.Name := "Asbase Client";
 MailMessage.Recipients.EMailAddresses := FEmail;
 MailMessage.Subject := "Информация об ошибке";
 MailMessage.Body.Clear;
 MailMessage.CharSet:= "Windows-1251";

 // Добавила эту часть, она себе потом благополучно исщезает (какой-то глюк видать, но зато потом остаётся то что надо)
 TextPart := TIdText.Create(MailMessage.MessageParts);
 TextPart.Body.Text := "!!!!!!!!!";
 TextPart.ContentType := "plain/text";

 TextPart := TIdText.Create(MailMessage.MessageParts);
 TextPart.Body.Text := ReportText;
 TextPart.ContentType := "text/html;charset=windows-1251";  // тогда получается нужная кодировка

 Att := TIdAttachment.Create(MailMessage.MessageParts, File);
 Att.ContentType := "image/jpg";
 Att.Headers.Add("Content-ID: <"+ Files +">"); // после этого начинает разбирать что есть картинка, и часть письма в html формате начинает нормально разбираться

 //send mail
  SendMail;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.046 c
15-1184656246
Тульский
2007-07-17 11:10
2007.08.12
Open Office Calc и первичные ключи


2-1184396614
Officeman
2007-07-14 11:03
2007.08.12
Как изравить от такого разделителя ?


2-1184230213
viper75
2007-07-12 12:50
2007.08.12
создание объекта в потоке


15-1184418835
Anatoly Podgoretsky
2007-07-14 17:13
2007.08.12
Московский потоп


15-1184343999
tesseract
2007-07-13 20:26
2007.08.12
Питер буду часов в 8 утра.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский