Autor Thema: Eindeutige Kennung eines erhaltenen Notes Mail  (Gelesen 3659 mal)

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Eindeutige Kennung eines erhaltenen Notes Mail
« am: 04.03.15 - 16:32:23 »
Leider konnte ich keine Info finden, WELCHE ID oder sonstiger einmaliger Wert eine erhaltene Notes-Mail kennzeichnet, die noch dazu automatisch immer im gleichen Order der gleichen Mailbox landen.

Ich bin dann auf das Feld $MessageID gestoßen, welches ich als DAS unique Feld erhofft hatte.

Zu meiner großen Verwunderung gibt es aber in diesem Feld Duplikate!!!

Da ich die Mails mit VBA auslese und die $MessageID, zusammen mit dem DeliveredDate in eine SQL-SErver Tabelle schreibe und dabei die $MessageID der Primärschlüssel ist, habe ich nicht schlecht gestaunt, wie es zu einem Fehler kam, weil eine Mail aus 2013 die gleiche $MessageID hat, wie ein Mail von heute. Noch dazu ist das alte Mail schon lange aus dieser Mailbox gelöscht gewesen!!

Also, was definiert nun eindeutig eine Mail-Nachricht??

Danke!
Michael

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #1 am: 04.03.15 - 17:09:30 »
Der eindeutige Schlüssel zu einem Dokument innerhalb einer Notes-Datenbank ist die UniversalID, das ist aber kein Feld im Dokument, sondern eine Eigenschaft.

Sammelst Du Dokumente über mehrere Datenbanken, kannst Du Dich darauf alleine nicht verlassen. Dann würde ich einen Schlüssel aus der ReplikID der Datenbank und der UniversalID des Dokuments zusammenstellen.

Domänenübergreifend ist auch dieser Schlüssel nicht garantiert eindeutig. Selbstverständlich kann in einer anderen Domäne eine Datenbank die gleiche ReplikID besitzen, und Dokumente enthalten, die die gleiche UniversalID tragen. Aber das ist sicherlich für Deinen Anwendungsfall ein eher theoretisches Problem.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #2 am: 04.03.15 - 21:41:42 »
Dann würde ich einen Schlüssel aus der ReplikID der Datenbank und der UniversalID des Dokuments zusammenstellen.

Allgemeine Zustimmung, nur zu oben gesagten folgende Anmerkung: ReplicaID und UniversalID wäre "doppelt gemoppelt", denn die ReplicaID ist Bestandteil der UniversalID.

Benrhard

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #3 am: 05.03.15 - 00:41:04 »
Bernhard, hier muss ich dir widersprechen. Das war zwar früher so, seit Notes 8 zumindest beobachte ich, dass die ersten 16 Stellen der UNID eben nicht mehr die Replik-ID sind. (Dann folgen 16 Stellen für das Erstellt-Datum des Dokuments)


Die $MessageID muss laut RFC2822 eigentlich auch eindeutig sein.

https://tools.ietf.org/html/rfc2822
Zitat
  The message identifier (msg-id) itself MUST be a globally unique
   identifier for a message.  The generator of the message identifier
   MUST guarantee that the msg-id is unique.

Das Problem ist vermutlich, dass sich der Absender nicht an die RFC hält.

Gruß Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #4 am: 05.03.15 - 15:23:09 »
Dann würde ich einen Schlüssel aus der ReplikID der Datenbank und der UniversalID des Dokuments zusammenstellen.

Allgemeine Zustimmung, nur zu oben gesagten folgende Anmerkung: ReplicaID und UniversalID wäre "doppelt gemoppelt", denn die ReplicaID ist Bestandteil der UniversalID.

Benrhard

doc1 sei ein Dokument der db1

Dim doc2 As New NotesDocument (db2)
Call doc1.CopyAllItems (doc2)
doc2.UniversalID = doc1.UniversalID
Call doc2.Save (True, True)

Dann hast Du zwei Dokumente in zwei verschiedenen Datenbanken mit identischer UniversalID. Ich mache sowas gerne bei Archivierungen, da dann das ursprüngliche Erstelldatum des Dokuments erhalten bleibt.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #5 am: 05.03.15 - 15:39:00 »
Mea culpa - das war auf die Schnelle und wider eigenes besseres Wissen gepostet  :'(

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #6 am: 05.03.15 - 15:51:45 »
Das geht viel einfacher: Versende mal eine Mail und prüfe die UNID der Dokumente im Gesendet des Senders und Eingang jedes einzelnen Empfängers...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Tiger955

  • Frischling
  • *
  • Beiträge: 30
Re: Eindeutige Kennung eines erhaltenen Notes Mail
« Antwort #7 am: 06.03.15 - 08:32:23 »
Danke für Eure Antworten.

Für meine Anwendung habe ich es mit strUNID=LNdoc.UniversalID nunmehr gelöst.

Da wir weder replizieren, noch diese Mails irgendwo hinkopieren, hoffe ich nunmehr, dass es keine weitere Primärschlüsselverletzung geben kann.
Grüße
Michael

@Roland:
Da diese Mails von einer Abteilung generiert werden und von der anderen Abteilung eingelesen werden, also alles über den selben domino-Server läuft, würde mir ein Screenshot sehr helfen, wo man RFC definiert. Ich kenn mich da viel zu wenig aus, aber unsere IT sollte sich das mal anschauen, vielleicht sind wir ja selbst schuld an den Duplikaten in der $MessageID - wenn ich das mit RFC richtig verstanden habe.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz