AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EML Indy Body enthält Header

Ein Thema von dataspider · begonnen am 27. Feb 2018 · letzter Beitrag vom 28. Feb 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#1

EML Indy Body enthält Header

  Alt 27. Feb 2018, 09:51
Hi

Ich lese mit Indy EML - Dateien aus.
Das funktionierte bis jetzt. Ich habe nun eine Mail, welche keine MessageParts hat.
ContentType von TIdMessage is 'Plain/Text'

Also hole ich den Text der Mail aus IdMessage.Body anstatt IdText.Body.

Und nur bei dieser Konstellation geht der BodyText nach den eigentlichen Text weiter mit:
Received From: ...
Received From: ...
Subject: ...
und alle möglichen weiteren Headerinformationen.

Wenn ich die EML mit dem Hex - Editor anschaue, ist nach dem Body nur noch 2 X 0D0A, dann kommt das Received From...

Ist jetzt die EML fehlerhaft (kommt von Lotus Notes)?
Irgendwie muss ja z.B. Indy erkennen, wann der Body beendet ist.
Oder gibt es noch irgendwo Längenangaben?

Frank
Frank Reim
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#2

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 14:05
Bitte mal 'ne entsprechende EML hier anhängen.

Da scheint irgendwas nicht mit zu stimmen, aber ohne so ein Exemplar mal anzuschauen, scheint mir ein zielführender Lösungsvorschlag eher schwierig.

Mögliche Ausgangspunkte für die "Forschung":

https://stackoverflow.com/questions/...l-file-formats
https://www.ietf.org/rfc/rfc1521.txt

Geändert von Delphi.Narium (27. Feb 2018 um 14:08 Uhr) Grund: Links ergänzt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#3

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 14:20
Zitat:
Irgendwie muss ja z.B. Indy erkennen, wann der Body beendet ist.
Das ist bei HTTP und Verwandten ganz einfach so definiert.

Der Header ist alles, bis zur ersten Leerzeile und danach kommt der Body (Text, Binär oder sonstwie).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 16:54
Bitte mal 'ne entsprechende EML hier anhängen.
Ich wollte die EML per PN schicken, aber das ist wohl in deinem Profil gesperrt?
Da es sich um echte Daten handelt, möchte ich das nicht öffentlich hier anhängen.

Danke

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 17:08
Zitat:
Irgendwie muss ja z.B. Indy erkennen, wann der Body beendet ist.
Das ist bei HTTP und Verwandten ganz einfach so definiert.

Der Header ist alles, bis zur ersten Leerzeile und danach kommt der Body (Text, Binär oder sonstwie).
Aber wie erkennt man, wann der Body zu Ende ist.
Wie gesagt, wenn ich mir das im Hex Editor ansehe habe ich auch keine Idee, wie man den Body allein extrahiert.

Im Scrennshot mal in HEX der Übergang Body zu Rest
Wirklich nur 2 x CRLF. 2 x CRLF ist aber auch im Text enthalten und wäre als Trenner auch unsinnig.

Frank
Miniaturansicht angehängter Grafiken
eml_hex.jpg  
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#6

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 17:36
Aber wie erkennt man, wann der Body zu Ende ist.
Entweder die Größe steht im Header oder es geht einfach bis zum Ende des Streams / der Datei.

Darum gibt es z.B. beim Download von Dateien, ohne Größe im Header, auch keine Fortschrittsanzeige
und am Ende natürlich auch keine Prüfung ob alles da ist, falls die Verbingung abkratzte. (weiß ja der Client nicht ob Abbruch oder Ende war)



Bei den MultiMessage-Mails, gibt es einmal den Header+Body über alles (Größe im Header oder bis Dateiende)

und dann im Body nochmal die Parts.
Da dann jeweils wieder Größe im Part-Header oder es gibt eine START/STOP-Signatur, welche im Header genannt wurde,
und dann anschließend der nächste Part-Header mit seinem Body usw. (eventuell sogar nochmal weiter verschachtelt)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (27. Feb 2018 um 17:43 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#7

AW: EML Indy Body enthält Header

  Alt 27. Feb 2018, 17:44
Zitat:
Irgendwie muss ja z.B. Indy erkennen, wann der Body beendet ist.
Das ist bei HTTP und Verwandten ganz einfach so definiert.

Der Header ist alles, bis zur ersten Leerzeile und danach kommt der Body (Text, Binär oder sonstwie).
Aber wie erkennt man, wann der Body zu Ende ist.
Wie gesagt, wenn ich mir das im Hex Editor ansehe habe ich auch keine Idee, wie man den Body allein extrahiert.

Im Scrennshot mal in HEX der Übergang Body zu Rest
Wirklich nur 2 x CRLF. 2 x CRLF ist aber auch im Text enthalten und wäre als Trenner auch unsinnig.

Frank
Bei reiner Textmail:
Header ist alles vor der ersten Leerzeile.

Alles hinter der ersten Leerzeile ist Body.

Am Ende sollte es noch eine Leerzeile, eine Zeile mit einem . und ein (oder zwei) Leerzeile(n) geben.

Frühere Indyversionen hatten Probleme, wenn das "Ende" nicht passte.
Deshalb versuch bitte mal, ob durch das Anfügen einer Leerzeile, einer Zeile mit einem Punkt und weiteren zwei Leerzeilen vor der Verarbeitung mit Indy, das Problem zu beheben ist.

Eventuell mal da stöbern gehen: http://www.delphipraxis.net/128350-i...-auslesen.html

Schau bitte mal, ob Du mir jetzt 'ne PN schicken kannst.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: EML Indy Body enthält Header

  Alt 28. Feb 2018, 12:02
Schau bitte mal, ob Du mir jetzt 'ne PN schicken kannst.
Geht noch nicht...

Frank
Frank Reim
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: EML Indy Body enthält Header

  Alt 28. Feb 2018, 12:07
und jetzt?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: EML Indy Body enthält Header

  Alt 28. Feb 2018, 12:29
'ne reine Textmail sollte vom Prinzip so aussehen:
Code:
x-sender: Absender@irgendwo.com
x-receiver: empfaenger@anderswo.com
X-SCL: 7 93.11%
Received: from 127.0.0.1 ([127.0.0.1]) by mailserver.empfaenger.com with Microsoft SMTPSVC(6.0.3790.3959);
    Fri, 29 Feb 2018 11:11:11 +0100
Message-ID: <000801c87ac0$0608774a$7a29978a@cfghapi>
From: "Absendername" <Absender@irgendwo.com>
To: <empfaenger@anderswo.com>
Subject: Betreff
Date: Fri, 29 Feb 2018 11:11:11 +0000
MIME-Version: 1.0
Content-Type: text/plain;
   charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
Return-Path: Absender@irgendwo.com
X-OriginalArrivalTime: 29 Feb 2018 11:11:11.0390 (UTC) FILETIME=[9EA3BEE0:01C87AC0]

Hier sollte nun der Mailtext stehen.

Und noch mehr Text.

Und noch mehr Text.
(Und am Ende zwei Leerzeilen.)

Passt dieser Aufbau bei Deinen Problemmails?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:40 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