Einzelnen Beitrag anzeigen

Rene K.

Registriert seit: 26. Jan 2005
Ort: Dresden
6 Beiträge
 
Delphi XE5 Enterprise
 
#3

Re: Problem mit Umlauten beim senden von Mails mit Indy

  Alt 2. Okt 2009, 10:19
Ich habe mit RAD2009 und Indy ein ähnliches Problem gehabt und es wie folgt gelöst.

Delphi-Quellcode:
procedure TForm.IdMessage_InitializeISO(var VHeaderEncoding: Char; var VCharSet: string);
begin
  VHeaderEncoding := 'B';
  VCharSet := 'ISO-8859-1';
end;
 
procedure TForm.SendMail;
var IdMessage1: TIdMessage;
    SubjectStr, BodyText: string;
begin
  ...
  IdMessage1.ContentTransferEncoding := 'BASE64';
  IdMessage1.OnInitializeISO := IdMessage_InitializeISO;
  IdMessage1.ContentType := 'text/plain';
  IdMessage1.CharSet := 'ISO-8859-1';
  IdMessage1.Subject := _MIMEConvert(true, SubjectStr);
  IdMessage1.Body.Text := BodyText;
  ...
end;
Die Funktion _MIMEConvert() wandelt die deutschen Sonderzeichen im String um:
'Ä' wird zu '=?iso-8859-1?q?=C4?='
'€' wird zu '=?iso-8859-15?q?=A4?='.
weitere Details zur Codierung unter http://de.wikipedia.org/wiki/ISO_8859-1. Diese Umwandlung ist allerdings nur für den Mail-Header notwendig. Mit o.g. Einstellungen kann im Mail-Body beliebiger Text als String mit Umlauten übergeben werden.

Weitere Lösungsansätze gibt es auch unter https://forums.codegear.com/thread.jspa?threadID=7019
  Mit Zitat antworten Zitat