Wie bestimmen Sie die UID einer Nachricht in IMAP
Arbeite ich in einer E-mail-client-Projekt mit C#. Ich bin mit der POP-und IMAP-Protokoll zur Kommunikation mit dem server. Das problem ist, ich kann nicht herausfinden, warum, wenn ich will, um die UID für eine Nachricht, die das Ergebnis aus der POP-server und den IMAP-server sind anders.
POP
C: UIDL 1
S: +OK 1 UID2-1269789826
und
IMAP
C: $ FETCH 1 (UID)
S: * 1 FETCH (UID 2)
S: $ OK Fetch completed.
Warum das Ergebnis für die Erteilung der UID ist so anders? In IMAP ist eine andere Funktion dafür?
Jede Hilfe ist willkommen.
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
POP3 und IMAP sind zwei verschiedenen Protokolle. Die UIDs, die diese beiden Protokolle sind nicht miteinander verwandt und sollen nicht das gleiche überhaupt. In der Tat, ein POP3-UID ist eine beliebige Zeichenkette und einem IMAP-UID ist eine 32-bit-Zahl (als string übertragen).
In der Theorie, es ist möglich, schreiben einen mailserver unterstützt IMAP und POP3 verwenden die gleiche UID für beide Protokolle, aber ich bin mir nicht bewusst, irgendwelche server, wäre dieses tatsächlich zu tun. In der Praxis, Sie haben zu behandeln POP3-UIDs und IMAP-UIDs als unabhängigen Werte.
RFC-1939 (POP3):
Die eindeutige id einer Nachricht ist ein beliebiger server-bestimmt Zeichenfolge, die aus einer auf 70 Zeichen im Bereich 0x21 bis 0x7E, die eindeutig identifiziert eine Nachricht innerhalb einer Empfangsadresse und die bleibt auch für folgesitzungen erhalten.
RFC 3501 (IMAP):
(Unique Identifier (UID) Message-Attribut ist) ein 32-bit-Wert zugewiesen jede Nachricht, die, wenn verwendet, mit dem eindeutigen Bezeichner Wert Gültigkeit (siehe unten) bildet eine 64-bit-Wert, der MUSS keinen Bezug zu einer anderen Nachricht in der mailbox oder einer der folgenden Postfach mit demselben Namen für immer.
Sehr wichtig IMAP Tatsache
Dies ist, was ich gelernt habe, spielen bei GMail (die ich erwarten, dass andere Systeme die gleichen zu sein):
Zog ich die Nachrichten über die GMail.com UI
Soweit ich sagen kann, UID ist nur nützlich bei der Suche nach den neuesten E-Mails in einem Ordner. Führen Sie den Befehl Suchen ("
UID 34:*
), um alle Nachrichten in einem Ordner mit der UID 34 oder höher.Aber nicht anfangen mit UID als Schlüssel, um die Nachricht in eine Datenbank, oder Sie werden am Ende mit dupes.
Ich denke ich werde mir die Zeit nehmen, empfangen und hash mit dem Inhalt der Nachricht erhalten eine UID kann ich eigentlich in eine Datenbank.