Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Проблемой с кодировкой 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
2-1184135112
Б.А.С.
2007-07-11 10:25
2007.08.12
Программный вход в систему


15-1184328896
Суслик
2007-07-13 16:14
2007.08.12
Delphi2007 + Code folding


15-1184239754
Кевларвестов Семен
2007-07-12 15:29
2007.08.12
Определить Null или Not Null Поле в БД


1-1181105710
DelphiN!
2007-06-06 08:55
2007.08.12
Подключиться к HKEY_CURRENT_USER другого пользователя


15-1184394641
@!!ex
2007-07-14 10:30
2007.08.12
Forex - подстава и воровство?