Главная страница
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.018 c
6-1141228505
Gnobobel
2006-03-01 18:55
2007.08.12
Indy: Не посылаются Cookies.


2-1184653157
Alex7
2007-07-17 10:19
2007.08.12
Что добавить в DataModule, чтобы он признал TDBGridEh


2-1184235225
Booka Shade
2007-07-12 14:13
2007.08.12
Буфер обмена


2-1184660153
Gydvin
2007-07-17 12:15
2007.08.12
Получить начало координат при выводе в svg формат


15-1183988952
Gydvin
2007-07-09 17:49
2007.08.12
Поиск