AGB  ·  Datenschutz  ·  Impressum  







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

Indy: Original-Message-Id auslesen

Ein Thema von hoika · begonnen am 28. Okt 2015 · letzter Beitrag vom 28. Okt 2015
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#1

Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 08:22
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
Heiko
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 08:59
Hallo,

wenn ich das richtig sehe, wird der Header bei Indy 10 in unit IdMessage; und dort in procedure TIdMessage.ProcessHeaders; gelesen, Original-Message-Id ist hier allerdings nicht dabei.
  Mit Zitat antworten Zitat
delnu
(Gast)

n/a Beiträge
 
#3

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 09:45
Steht hier nichts Passendes ?
http://www.delphipraxis.net/128350-i...-auslesen.html
http://stackoverflow.com/questions/4...-no-message-id
http://stackoverflow.com/questions/2...y-10-and-msgid

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.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 12:17
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
Heiko
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 13:13
Hallo,

wenn ich das richtig sehe, wird der Header bei Indy 10 in unit IdMessage; und dort in procedure TIdMessage.ProcessHeaders; gelesen, Original-Message-Id ist hier allerdings nicht dabei.
Ausgehend vom Quelltext von Indy 10 wird die Original-Message-Id nicht geliefert, auch wenn sie vorhanden ist!

Wieso hilft diese Information nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 13:28
Quark ... du willst die ja auslesen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
delnu
(Gast)

n/a Beiträge
 
#7

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 13:35
@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: http://php.net/manual/de/function.im...h-overview.php
Code:
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
Das sollten eigentlich alle Informationen sein, die im Kopf von E-Mails stehen können.

Geändert von delnu (28. Okt 2015 um 13:43 Uhr) Grund: Nachtrag Vergleich php
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 14:11
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:
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
Jetzt kommt der Content:
Code:
--------------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
Ergo muss man den Message-Part auswerten, denn dort stehen ja auch alle weiteren Informationen drin (z.B. Disposition, etc.)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 15:38
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 (http://forums2.atozed.com/viewtopic....p=33949#p33949) gepostet.
Es handelt sich auch nicht am einen Anhang (TIdAttachment), sondern um Text (TIdText).
Alles seeehr merkwürdig.


Heiko
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Indy: Original-Message-Id auslesen

  Alt 28. Okt 2015, 15:47
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
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:24 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