![]() |
Re: Indy TIdMessage TExt auslesen
Ich habe dir 2 betreffende Nachrichten per PN geschickt.
|
Re: Indy TIdMessage TExt auslesen
Hallo,
habe beim Lesen beider Mails (mit der weiter oben geposteten Methode) keine Probleme. Es sind beides reine Textmails. Die vom Backup ist eventuell etwas zu spartanisch, meiner Meinung nach aber vom Aufbau her korrekt. Auch der Newsletter sieht korrekt aus. Häng' doch bitte mal an beide Mails zwei Leerzeilen dran und versuch' es damit. Bin mir nie sicher, ob eine Leerzeile am Ende reicht, oder ob es mehrere sein müssen. Funktionieren die aktuellen nicht Indy-Komponenten nicht mit Deiner Delphiversion? Eventuell kannst Du ja mal versuchen, aus den neueren Versionen nur die IDMessage bei Dir zu integrieren. |
Re: Indy TIdMessage TExt auslesen
Ich habe die aktuellen Indykomponenten noch nicht unter Delphi 5 probiert. ich nutze Indy 9.0.4 Beta.
Das Einlesen der eMails gestalte ich nach deinem letzen Beispiel, also:
Delphi-Quellcode:
Dann wird es wohl wirklich an der Indy-Version liegen. Welche Version nutzt du?
errMail := False;
idMail := TIdMessage.Create(self); slMail := TStringList.Create; msMail := TMemoryStream.Create; try slMail.LoadFromFile(sMailPfad); slMail.Add(''); slMail.Add('.'); slMail.Add(' '); slMail.Add(''); slMail.Add(''); slMail.SaveToStream(msMail); msMail.Position := 0; try idMail.LoadFromStream(msMail, False); ... |
Re: Indy TIdMessage TExt auslesen
Hallo,
meine Indyversion ist 9.0, d. h.: Wir haben da die gleichen Versionen und müssten dann auch die gleichen Fehler oder Probleme haben. Ohne den Code, den Du da extrahiert hast, kann ich einen nicht unerheblichen Teil der Mails ebenfalls nicht lesen. Er ist nicht nach irgendeiner "tiefgreifenden, sinnvollen und nachvollziehbaren" Logik entstanden, sondern nur durch Try&Error. Er frist jetzt seit ca. 3 oder 4 Monaten jede Mail und kann sie in der von mir benötigten Form aufbereiten. Er ist mit Sicherheit nicht der Weisheit letzter Schluss. Mit den Leerzeilen am Ende wird aber ein Fehler in den Mails korrigiert. Es ist kein Workaround, um an Indyproblemen vorbei zu kommen, sondern fehlerhafte Mails in ein gültiges Format zu bringen. Ändere mal (wenn möglich) den Job, der die Mail vom Backup verschickt, indem Du da ans Ende "immer" zwei Leerzeilen anhängst, dann sollten diese Mails gelesen werden können. Alles aus meinem oben geposteten Code vor dem bCheckOk := False; ist nur dazu da, um mit nicht lesbaren Mails umzugehen und sie doch noch irgendwie "indykonform" hinzubekommen. Vermutlich hält sich Indy mehr an den Standard, als das reale Leben. Wenn Du Dir mal so die Mails von den Spammern anschaust, da ist zuweilen (auch aus technischer Sicht) nur absoluter Schrott drin. Verblüffend, mit was die Mailserver so alles klarkommen. |
Re: Indy TIdMessage TExt auslesen
Endlich, nach stundenlangem Probieren, auch unter Nutzung des Borland DeveloperStudio 2006 hab ich es endlich.
Ich bin immer davon ausgegangen, dass der Text der Email in den MessageParts enthalten sein muß, was meiner meinung nach auch logisch wäre. Bei den entsprechenenden Mails allerdings befindet sich der Inhalt der Mail im Body des TIdMessage-Objektes. Wäre ich Depp gleich darauf gekommen, hätte ich mir viel Frust und Tüftelei erspart. Nun kann ich einfach beide Bodies vergleichen und den Inhalt anzeigen. Danke dir, mal wieder, für deine Hilfe!!! Zusatz: Mit Delphi 5 wird das Body-Object einer TIdMessage einer entpsrechenden Mail nicht angezeigt. Das gleiche Programm entwickelt unter BDS 2006 zeigt den Body-Inhalt an. Hier gibt es dann doch irgend welche Unterschiede zwischen den Delphi-Versionen. Aber eigentlich dürfte das doch gar nicht sein, die Delphi-Umgebung sollte doch auf ein Programm keine Auswirkungen haben. |
Re: Indy TIdMessage TExt auslesen
Hallo,
Zitat:
Was die Delphi-Umgebung angeht: Abhängig von der Delphiversion werden eventuell durch bedingte Kompilierung unterschiedliche Teile der Indy's abgearbeitet, so dass bei "gleicher" Quelltextversion durchaus unterschiedliche funktionierende Programme dabei herauskommen können. Eventuell sind die Basisklassen, auf denen die TIDMessage aufsetzt, ja bei den beiden Delphiversionen sehr unterschiedlich. Nur darauf zu kommen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 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