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.