Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Mails werden vereinzelt im Quelltext angezeigt (https://www.delphipraxis.net/169752-mails-werden-vereinzelt-im-quelltext-angezeigt.html)

Markus70 9. Aug 2012 12:15

Mails werden vereinzelt im Quelltext angezeigt
 
Hallo,

ich habe mit Indy 10 einen Mailclient für den personalisierten Versand von Emails programmiert, der grundsätzlich auch einwandfrei funktioniert.

Aber:

Vereinzelt kommt es vor, dass ein und dieselbe Mail bei einem Empfänger sauber ankommt, und beim anderen als HTML-Quellcode. Versende ich die gleiche Mail über einen anderen SMTP, wird die Mail bei beiden Empfängern richtig angezeigt. Ist das nicht dubios?

Kann mir einer erklären warum und wie ich das in den Griff bekomme?
Bin für jeden Tipp dankbar.

Danke & Gruß.

s.h.a.r.k 9. Aug 2012 12:32

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Hast du die ContentType Eigentschaft gesetzt? Das wäre mein erster Tipp bzw. Ansatz. Evtl. prüft der eine SMTP-Server ja, um was es sich für einen Inhalt handeln könnte und ergänzt den ContentType, wenn dieser in der Mail nicht enthalten ist. Das ist aber nur ins blaue geraten, da ich mit den Indys noch nie was gemacht habe.

Hier ein wenig Code, den ich dies bzgl. gefunden habe:
Delphi-Quellcode:
// Plain Text
  with TIdText.Create(IdMsgSend.MessageParts, nil) do
  begin
    ContentType := 'text/plain';
    Body.Text := Nachricht.Text;
  end;

  // HTML Part
  with TIdText.Create(IdMsgSend.MessageParts, nil) do
  begin
    ContentType := 'text/html';
    Body.Text := RtfToHtml('MetaHead', Nachricht); //Benötigt funktion um RTF zu HTML umzuwandeln
  end;

Markus70 9. Aug 2012 13:05

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Ja, contenttype ist gesetzt.

s.h.a.r.k 9. Aug 2012 13:55

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Kannst du die Mail vergleichen? Also den wirklichen Inhalt der Mail. Es muss ja scheinbar einen Unterschied geben.

Mit welchen Mail-Clients wird die Mail denn angezeigt?

HPB 9. Aug 2012 18:46

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Guten Tag,
ich habe ein ähnliches Problem mit den versenden von Mails mit Indy10-Komponenten.
Ich habe jetzt auch den ContentType gesetzt und siehe da, es wird keine Fehlermedung über "TroubleShooting im Rootverzeichnis" ausgegeben. Jedoch kommt die Mail im Body nicht richtig an.
Frage 1: welche Parameter muss ich setzen?
Frage 2: Woher weiss ich, ob ich ContentType 'text/plain' oder 'text/html' nehmen muss?
Vielen Dank im Voraus!
HPB

s.h.a.r.k 10. Aug 2012 07:23

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Hallo HPB,

je Thread eine Frage. Deine hat ja nicht direkt etwas mit dem Problem von Markus70 zu tun.

Zitat:

Zitat von HPB (Beitrag 1177566)
Ich habe jetzt auch den ContentType gesetzt und siehe da, es wird keine Fehlermedung über "TroubleShooting im Rootverzeichnis" ausgegeben. Jedoch kommt die Mail im Body nicht richtig an.

Und was genau passiert denn?
Zitat:

Zitat von HPB (Beitrag 1177566)
Frage 1: welche Parameter muss ich setzen?

Hängt wohl stark davon ab, was du machst und was für eine Mail ankommt.
Zitat:

Zitat von HPB (Beitrag 1177566)
Frage 2: Woher weiss ich, ob ich ContentType 'text/plain' oder 'text/html' nehmen muss?

Man kann eine E-Mail als HTML-E-Mail oder als Text-Nachricht verschicken. Und jetzt rate mal, welchen ContentType du wann setzen musst, um welches Ergebnis zu erreichen? 8-) PS: Verschickst du HTML via text/plain, so müsste man eigentlich direkt das HTML im Mail-Client und nicht das geparste Dokument.

Markus70 24. Aug 2012 10:59

AW: Mails werden vereinzelt im Quelltext angezeigt
 
Hallo shark,

die Mails sind absolut identisch.
Nur das routing zum Empfänger ist logischerweise ein anderes.
Ich vermute, dass irgendein Gateway unterwegs etwas an den Kopfzeilen nicht mag. Aber was?


Die Mail erstelle ich übrigens so:

Delphi-Quellcode:
   try
    IdMessage := TIdMessage.Create(self);
    Result:=True ;
    try
    IdMessage.IsEncoded:=True ;
    IdMessage.CharSet:='iso-8859-1';
    IdMessage.Encoding:=meMIME;
    IdMessage.Subject:=betreff;
    IdMessage.From.Text:=VonMail;
    IdMessage.From.Name:=VonName;
    IdMessage.ReplyTo.EMailAddresses  := ReplyTo;
    IdMessage.Recipients.Clear;
    IdMessage.Recipients.Add;
    IdMessage.Recipients.Items[0].Name := AnName;
    IdMessage.Recipients.Items[0].Address := AnEMail;
    IdMessage.CCList.Clear;
    IdMessage.ContentType:='multipart/related';
    IdMessage.Body.Clear;

    try
      htmpart := TIdText.Create(IdMessage.MessageParts);
      htmpart.Body.Text := HTMLText;
      htmpart.ContentType := 'text/html';
    except
      result:=False ;
      exit ;
    end;
    try
      txtpart := TIdText.Create(IdMessage.MessageParts);
      txtpart.Body.Text := PlainText;
      txtpart.ContentType := 'text/plain';
      txtpart.CharSet:='iso-8859-15';
      txtpart.ContentTransfer := '8bit';
    except
      result:=False ;
      exit ;
    end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz