![]() |
Indy TIdMessageBuilderHtml PlanText Umlaute
Hallo zusammen,
beim versenden einer Email über Indy 10 nutze ich die TIdMessageBuilderHtml Komponente. Diese funktioniert im HTML-Bereich einwandfrei. Wenn ich allerdings einen Alternativ-Text übergebe, werden die Sonderzeichen und Umlaute komplett weggeschnitten. Wo liegt das Problem. Anbei ein Quellcode-Ausschnitt:
Delphi-Quellcode:
Vielen Dank für eure Hilfe...
try
result := false; mes := TIdMessage.Create(smtp); mes.IsEncoded := true; mes.From.Address := AAbsenderEmail; mes.From.Name := AAbsenderName; mes.ReplyTo.EMailAddresses := AAbsenderEmail; mes.Recipients.EMailAddresses := AEmpfaengerEMail; mes.Subject := ABetreff; mes.ContentType := 'Multipart/Alternative'; mes.ContentDisposition := 'inline'; mes.ExtraHeaders.Add('MIME-Version: 1.0'); mes.ExtraHeaders.Add('Content-Type: multipart/alternative;'); mes.ExtraHeaders.Add(#9'boundary="----=_TEXT_AND_HTML_BOUNDARY_"'); mes.CharSet := 'utf-8'; with TIdMessageBuilderHtml.Create do begin try Html.Clear; Html.Text := GetHTMLText; PlainText.Text := AAlternativtext; FillMessage(mes); finally Free; end; end; try while not smtp.Connected do begin ConnectSMTP; sleep(25); end; smtp.Send(mes); result := true; except on e : EIdConnClosedGracefully do begin result := true; end else begin result := false; end; end; finally FreeAndNil(mes); end; |
AW: Indy TIdMessageBuilderHtml PlanText Umlaute
Hast du dir auch die letzte Version der Indies geholt? Die mitgelieferten Versionen (vor allem D2009) haben noch einige größere Bugs im Bereich Unicode.
|
AW: Indy TIdMessageBuilderHtml PlanText Umlaute
Zitat:
werde dieses direkt machen und berichten. |
AW: Indy TIdMessageBuilderHtml PlanText Umlaute
Zitat:
Nutze Delphi 2009... Wo bekomme ich die aktuellste Indy-Version her und wie muss diese installiert werden? |
AW: Indy TIdMessageBuilderHtml PlanText Umlaute
Lösung gefunden:
Delphi-Quellcode:
Danke an alle!
with TIdMessageBuilderHtml.Create do
begin try PlainText.Text := AAlternativtext; Html.Clear; Html.Text := GetHTMLText; FillMessage(mes); finally Free; end; end; mes.MessageParts.CountParts; for i := 0 to mes.MessageParts.Count - 1 do begin if ansiuppercase(mes.MessageParts.Items[i].ContentType) = ansiuppercase('text/plain') then begin with TIdText(mes.MessageParts.Items[i]) do begin ContentType := 'text/plain'; CharSet := 'ISO-8859-1'; ContentTransfer := 'BASE64'; ContentDisposition := 'inline'; end; break; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz