![]() |
Indy: Original-Message-Id auslesen
Hallo,
ich versuche, mit den Indy-Komponenten eien MDN (Message-Disposition-Notification = Empfangsbestätigung) auszulesen. Laut Thunderbird (Ansicht-Nachrichtenquelltext) gibt es das Feld "Original-Message-Id", auch laut RFC 3798 steht: The body of a message/disposition-notification consists of one or more "fields" formatted according to the ABNF of [RFC-MSGFMT] header "fields". The syntax of the message/disposition-notification content is as follows: disposition-notification-content = [ reporting-ua-field CRLF ] [ mdn-gateway-field CRLF ] [ original-recipient-field CRLF ] final-recipient-field CRLF [ original-message-id-field CRLF ] disposition-field CRLF *( failure-field CRLF ) *( error-field CRLF ) *( warning-field CRLF ) *( extension-field CRLF ) Nur wie komme ich an dieses Feld ran? Ich habe sämtliche Header.Text ausgelesen (Die Nachricht ist multipart, also habe ich auch die MessageParts[].Header.Text durchsucht. Wo ist dieses Feld versteckt ? Kann jemand helfen ? Danke Heiko Nichts ! ;( Im Moment benutze ich das Feld References, da steht die Ursprungs-Message-Id auch drin |
AW: Indy: Original-Message-Id auslesen
Hallo,
wenn ich das richtig sehe, wird der Header bei Indy 10 in
Delphi-Quellcode:
und dort in
unit IdMessage;
Delphi-Quellcode:
gelesen, Original-Message-Id ist hier allerdings nicht dabei.
procedure TIdMessage.ProcessHeaders;
|
AW: Indy: Original-Message-Id auslesen
Steht hier nichts Passendes ?
![]() ![]() ![]() Eigentlich liefern die gängigen Suchmaschinen doch bei Eingabe geeigneter Suchbegriffe immer massenweise Ergebnisse - obwohl zugegebenermaßen vor allem die von Google oft nicht zielführend sind. |
AW: Indy: Original-Message-Id auslesen
Hallo ihr zwei,
danke die Infos. Leider helfen die Tips nicht. Es gibt hier nicth um die normale Message-Id, sondern um die Original-Message-Id. Zur Erläuterung: Ich schicke eine Mail mit "Empfangsbestätigung senden" (=MDN). Die Mail wird von einem anderen System gelesen und die Empfangsbestätigung geschickt. Jetzt will ich wissen, zu welcher ursprünglichen Mail denn diese Empfangsbestätigung gehört. Das ProcessHeader habe ich gesehen, leider steht aber "Original-Message-Id" nicht im Header drin, ein IdMessage.Headers.Values['Original-Message-Id'] liefert mir nichts. Auch alle MessageParts-Headers, Bodies usw. habe ich untersucht. Ich habe so die Befürchtung, dass Thunderbird das nur so anzeigt. Das sieht übrigens so aus: From: "Test.4" <test.4@kv-safenet.de> To: "test.1" <test.1@kv-safenet.de> Message-ID: <562F9D1B.9080105@kv-safenet.de> References: <08D21F9D-8B89-4245-A86D-597BE9E9A008@kv-safenet.de> Subject: =?ISO-8859-15?Q?Empfangsbest=E4tigung_=28angezeigt=29?= -Arztbrief --------------mdn010501040306030804090601 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dies ist eine Empfangsbestätigung für eine Nachricht, die Sie an folgenden Empfänger gesendet haben: [English] This is a Return Receipt for the mail that you sent to: Hasomed.4@kv-safenet.de Beachten Sie: Diese Empfangsbestätigung sagt nur aus, dass die Nachricht am Computer des Empfängers angezeigt wurde. Es gibt keine Garantie, dass der Empfänger die Nachrichteninhalte gelesen hat. [English] Note: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read the message contents. --------------mdn010501040306030804090601 Content-Type: message/disposition-notification; name="MDNPart2.txt" Content-Disposition: inline Content-Transfer-Encoding: 7bit Reporting-UA: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 Final-Recipient: rfc822;Test4.4@kv-safenet.de Original-Message-ID: <08D21F9D-8B89-4245-A86D-597BE9E9A008@kv-safenet.de> Disposition: manual-action/MDN-sent-automatically; displayed --------------mdn010501040306030804090601 Content-Type: text/rfc822-headers; name="MDNPart3.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline Heiko |
AW: Indy: Original-Message-Id auslesen
Zitat:
Wieso hilft diese Information nicht? |
AW: Indy: Original-Message-Id auslesen
Quark ... du willst die ja auslesen :)
|
AW: Indy: Original-Message-Id auslesen
@hoika:
Dein References ist doch letztlich, was Du suchst. Ist es vielleicht doch nur eine Frage, wie es bezeichnet wird? Ich habe mir gerade mal diverse im RAW-Format gespeicherte E-Mails angesehen. Was Du suchst, ist dort IMMER "Message-ID", weshalb ich glaube, daß die Bezeichnung "Original-Message-ID" lediglich ein Synonym darstellt, also der Zusatz "Original" vielleicht gar nichts besagt. Für mich ist das Thema insofern interessant, weil ich endlich mal meine alten Testansätze für eMail-Zugriffe mittels Delphi überarbeiten will. Zuletzt hatte ich sowas direkt mit php-Scripts gemacht. Was Indy betrifft, so hat mich eigentlich immer dessen Komplexität abgeschreckt. Bzgl. php: ![]()
Code:
Das sollten eigentlich alle Informationen sein, die im Kopf von E-Mails stehen können.
Rückgabewerte ¶
Gibt ein Array von Objekten, die jeweils einen Nachrichtenkopf beschreiben, zurück. Das Objekt hat eine Eigenschaft nur dann, wenn sie auch existiert. Die möglichen Eigenschaften sind: subject - die Betreffzeile der Nachricht from - der Absender to - der Empfänger date - Sendezeitpunkt der Nachricht message_id - die Message-ID der Nachricht references - die Nachricht bezieht sich auf eine andere Nachricht mit dieser Message-ID in_reply_to - die Nachricht ist eine Antwort auf eine andere Nachricht mit dieser Message-ID size - Größe der Nachricht in Bytes uid - die UID der Nachricht innerhalb des Postfachs msgno - die aktuelle Nachrichtennummer innerhalb des Postfachs recent - diese Nachricht ist als kürzlich eingetroffen markiert flagged - diese Nachricht ist als wichtig markiert answered - diese Nachricht ist als beantwortet markiert deleted - diese Nachricht ist zur Löschung vorgemerkt seen - diese Nachricht ist als bereits gelesen markiert draft - diese Nachricht ist als Entwurf markiert |
AW: Indy: Original-Message-Id auslesen
Der Header-Eintrag References sollte sich in allen Nachrichten finden lassen, die eine Antwort auf eine Nachricht sind.
Somit sollte sich in auch in einer MDN dieser Header finden lassen. Die Original-Message-ID befindet sich aber nicht im Header der email, sondern liegt in einem Message-Part. Header ist das:
Code:
Jetzt kommt der Content:
From: "Test.4" <test.4@kv-safenet.de>
To: "test.1" <test.1@kv-safenet.de> Message-ID: <562F9D1B.9080105@kv-safenet.de> References: <08D21F9D-8B89-4245-A86D-597BE9E9A008@kv-safenet.de> Subject: =?ISO-8859-15?Q?Empfangsbest=E4tigung_=28angezeigt=29?= -Arztbrief
Code:
Ergo muss man den Message-Part auswerten, denn dort stehen ja auch alle weiteren Informationen drin (z.B. Disposition, etc.)
--------------mdn010501040306030804090601
Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dies ist eine Empfangsbestätigung für eine Nachricht, die Sie an folgenden Empfänger gesendet haben: [English] This is a Return Receipt for the mail that you sent to: Hasomed.4@kv-safenet.de Beachten Sie: Diese Empfangsbestätigung sagt nur aus, dass die Nachricht am Computer des Empfängers angezeigt wurde. Es gibt keine Garantie, dass der Empfänger die Nachrichteninhalte gelesen hat. [English] Note: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read the message contents. --------------mdn010501040306030804090601 Content-Type: message/disposition-notification; name="MDNPart2.txt" Content-Disposition: inline Content-Transfer-Encoding: 7bit Reporting-UA: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 Final-Recipient: rfc822;Test4.4@kv-safenet.de Original-Message-ID: <08D21F9D-8B89-4245-A86D-597BE9E9A008@kv-safenet.de> Disposition: manual-action/MDN-sent-automatically; displayed --------------mdn010501040306030804090601 Content-Type: text/rfc822-headers; name="MDNPart3.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline |
AW: Indy: Original-Message-Id auslesen
Hallo Sir Rufo,
das mit dem MessagePart habe ich ja auch gedacht. Nur ist der Body aller 23 (3 Teile) leer ... Der Dateiname ist interessant, vielleicht steht das ja dort drin, aber die Datei gibt es nicht ! (Search Everything hat nichts gefunden). Ich habe mal ins Indy-Forum ( ![]() Es handelt sich auch nicht am einen Anhang (TIdAttachment), sondern um Text (TIdText). Alles seeehr merkwürdig. Heiko |
AW: Indy: Original-Message-Id auslesen
Hallo,
nix merkwürdig, wer lesen kann. Der 2. Teil war natürlich doch ein TIdAttachment, und dort stand dann das Orginal-Msg-Id drin. Mann mann !!! Danke an alle. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 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