Einzelnen Beitrag anzeigen

bgeltenpoth

Registriert seit: 24. Jan 2012
15 Beiträge
 
Delphi XE7 Enterprise
 
#1

Delphi XE7 / TIdSMTP / Unicode

  Alt 19. Okt 2015, 13:14
Hallo,

ich versuche gerade Emails mit deutschen Umlauten (ü,ö,ä usw.) bzw. auch französischen Accents(é,û,ò usw.) in Body und Subject zu erzeugen und zu verschicken und scheitere kläglich. Ich habe schon alles an Forenbeispielen ausprobiert und scheitere trotzdem. In meinem EMail Client (Outlook) werden die besagten Zeichen dann zerschossen.

Alle Beispiele die ich bisher gefunden habe sind aber mit Delphi 2009 oder früher...Mit Delphi XEx haben wir aber Unicode Strings und an der Stelle müsste sich doch etwas ändern.
Ich benutzte die mit XE7 installierten Delphi Komponenten 10.6.1.518.

Hier ist das was ich an Code habe:

Delphi-Quellcode:
msg := TIdMessage.Create(nil);
    encoder := TBase64Encoding.Create;
    try
      // msg.Encoding := mePlainText;
      msg.Body.Add(encoder.encode(GetMsgBody(aAlarm)));
      msg.Body.Add(GetMsgBody(aAlarm));
      // msg.ContentTransferEncoding := 'BASE64';
      msg.ContentTransferEncoding := '8bit';
      // msg.ContentType := 'text/plain';
      msg.ContentType := 'Mime';
      msg.CharSet := 'UTF-8';
      // msg.Subject := '=?utf-8?b?' + encoder.Encode(GetMsgSubject(aAlarm))+ '?=';
      msg.Subject := GetMsgSubject(aAlarm);
      msg.From.Address := Params.SmtpSender;
      Destination := msg.Recipients.Add;
      Destination.Address := Params.SmtpReceiver;
      SmtpClient.connect;
      SmtpClient.Send(msg);
      SmtpClient.Disconnect();
    finally
      Begin
      msg.Free;
      encoder.Free;
      End;
    end;
Was mache ich nur falsch....vielleicht hat jemand ja eine Idee...
Die beiden Methoiden GetMsgBody und GetMsgSubject lifern jeweils einen Delphi String zurück.
Benedikt Geltenpoth
  Mit Zitat antworten Zitat