AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TIdMessage TExt auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TIdMessage TExt auslesen

Ein Thema von LokutusvB · begonnen am 28. Jan 2009 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
Seite 2 von 2     12   
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#11

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 12:01
Ich habe dir 2 betreffende Nachrichten per PN geschickt.
MFG
LokutusvB
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#12

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 12:47
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.
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#13

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 13:02
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:
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);
    ...
Dann wird es wohl wirklich an der Indy-Version liegen. Welche Version nutzt du?
MFG
LokutusvB
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#14

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 13:31
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.
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#15

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 16:22
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.
MFG
LokutusvB
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#16

Re: Indy TIdMessage TExt auslesen

  Alt 29. Jan 2009, 17:58
Hallo,
Zitat von LokutusvB:
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.
schön das Du Dein Problem endlich vom Hals hast. Auf die Einfachheit Deiner Lösung wäre ich allerdings jetzt auch nicht so auf Anhieb gekommen.
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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