Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Indy TIdMessageBuilderHtml PlanText Umlaute (https://www.delphipraxis.net/156532-indy-tidmessagebuilderhtml-plantext-umlaute.html)

sega84 6. Dez 2010 08:40

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:
 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;
Vielen Dank für eure Hilfe...

Bernhard Geyer 6. Dez 2010 09:06

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.

sega84 6. Dez 2010 09:10

AW: Indy TIdMessageBuilderHtml PlanText Umlaute
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1066450)
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.

Hallo,
werde dieses direkt machen und berichten.

sega84 6. Dez 2010 10:15

AW: Indy TIdMessageBuilderHtml PlanText Umlaute
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1066450)
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.

Wo ich leider nun ein Problem habe:
Nutze Delphi 2009... Wo bekomme ich die aktuellste Indy-Version her und wie muss diese installiert werden?

sega84 6. Dez 2010 12:17

AW: Indy TIdMessageBuilderHtml PlanText Umlaute
 
Lösung gefunden:
Delphi-Quellcode:
    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;
Danke an alle!


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