Finden Sie die Gmail-url-IDs via IMAP
Einer meiner Lieblings-features von Google Mail ist die Möglichkeit, Lesezeichen-urls für bestimmte Nachrichten, wie diese:
https://mail.google.com/mail/#all/124c8f386d41fd3a
Was ich tun möchte ist, ein Skript zu schreiben, die auf mein Gmail-Konto über IMAP und erstellt eine HTML-Seite mit links wie oben auf jede Nachricht ich bin interessiert.
Aber es scheint dort keine Möglichkeit zu finden, die "124c8f386d41fd3a" ID aus dem IMAP-envelope-oder UUID-Eigenschaften. Alle message-ids und uuids ich bin zu finden sind, der ein anderes format und können nicht verwendet werden, um gültige links zu meinem Posteingang.
Weiß jemand, wie finden Sie diese url-IDs in IMAP?
-- Felix Geisendörfer aka the_undefined
PS: ich bin mit Ruby und meine bisherigen versuche im Lieferumfang enthalten:
imap.fetch(message_id, "UID")
imap.fetch(message_id, "ENVELOPE")
imap.fetch(message_id, ...)
Ich versucht, alle Eigenschaften aufgeführt, die für FetchData in der ruby imap-docs
- Update: ich gebe ein $25 Amazon Gutschein wer kennt die Antwort auf diese! </Bestechung>
- Hallo, ich Frage mich, wenn Sie foudn eine Lösung für dieses Problem - ich bin in einem ähnlichen Schlamassel und möchte alle Ideen die Sie haben können.. im Prinzip brauche ich eine Art der Methode zur eindeutigen Identifizierung von E-Mails aus einer Anwendung und Abfragen können Sie auf der Basis dieser Methode.
- NÖ, bekomme ich nicht weiter mit diesem - sorry.
- Heya, geschrieben, die Antwort unten, wenn Sie noch auf der Suche für Sie. Ich verbrachte zwei Tage gerade starren auf diese zahlen, bis es mich erwischt 🙂
- Ich denke, es ist möglich, es zu tun via IMAP (und dass die akzeptierte Antwort ist falsch). Siehe meine Antwort unten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich die einzige offizielle Methode, um einen direkten link zu einer Nachricht wird durch die atom-feed-Google Mail bietet für ungelesene Nachrichten (https://gmail.google.com/gmail/feed/atom)...
Die einzige Schwierigkeit ist, dass Sie zu authentifizieren, das nicht so Häufig der Verwendung von feeds, und es gibt derzeit eine Beschränkung von 15 neuen Nachrichten, so dass jede neuere Nachricht wird "kick out" die ältesten!
Ich hoffe, Sie werden bald auf andere Weise, sei es über IMAP oder API...
Gmail bietet ein Attribut:
X-GM-THRID
für thread-id.Können Sie
imap fetch
Funktion für die thread-id.Siehe auch die Dokumentation hier.
Etwas gefunden. Kann jemand brauchen. Ich weiß nicht, wie zu verwenden ruby, ich will php verwenden, aber nicht wissen, wie Sie erweitern standart imap-Funktionen in php.
erhalten Sie so etwas wie dieses
* 1 FETCH (X-GM-THRID 1327644190303473294)
als Nächstes müssen Sie es zu konvertieren von dezimal zu hexadezimal Wert:
Scheint, dass der google-link (https://mail.google.com/mail/#all/124c8f386d41fd3a) Punkte, um das ganze Gespräch.
IMAP selbst nicht über eine solche Funktion (Gruppierung Gespräche)
[Update]
Ist es möglich, mit X-GM-DRITTE Gmail-IMAP-Erweiterung.
124c8f386d41fd3a ist Gmail thread-id in hex.
Können Sie hier mehr Lesen:
http://www.limilabs.com/blog/create-gmail-url-id-via-imap
Dieser scheint etwas internes zu GMail-web-UI. Ich kann mir vorstellen, einen workaround wie diese:
verwenden, curl, wget oder etwas ähnliches mit dieser session-cookie zu Holen, die Seite
https://mail.google.com/mail/h?s=q&[email protected]
wo der Sache nach das 'q=' - Teil der Message-ID der e-mail-Nachrichten von IMAP.
Nun können Sie kratzen die "GMail-ID" der Nachricht, die Sie benötigen, aus der Sie HTML, suchen Sie nach einem link mit einer Ziel-URL, die wie folgt aussieht:
?v=c&s=q&q=2AE41111.1234123%40gmail.com&th=124ae57b77769275
Den Teil nach dem 'th' ist, was Sie brauchen.
Böse, wahrscheinlich sehr ineffizient, aber das kann sehr gut sein, die nächste Sie eine Lösung.
Wenn Sie nicht, die verzweifelten, Sie können verwenden Sie die such-URL, die, in Ihrer einfachsten form, und mit dem standard UI sieht wie folgt aus:
Der Letzte Teil ist der Wert des Message-ID-header-Feld wieder. Auf diese Weise erhalten Sie ein einziges suchergebnis, aber Sie haben noch, um Sie auf es zu sehen.
rfc822msgid:
Schlüsselwort in die Suche ein. Also die eigentliche URLhttps://mail.google.com/mail/u/0/#search/rfc822msgid%[email protected]
.Ich denke, dass die akzeptierte Antwort ist falsch (an dieser Stelle, vielleicht war es richtig an der Zeit).
Wenn man sich an der atom-feed (https://gmail.google.com/gmail/feed/atom), Sie werden sehen, dass die Einträge so Aussehen:
Die message_id ist wahrscheinlich der X-GM-MSGID, in hex. Erhalten Sie die X-GM-MSGID über IMAP, so sollten Sie in der Lage sein zu contruct die URLs, die Sie wollen über IMAP, ohne mit der atom-feed.
Ich benutze einen Mac-Menüleiste app namens Informieren die zeigt mir neue GMail-Nachrichten, die ich können durch Doppelklick übernommen werden, um Sie auf der GMail-Website. Sowohl für IMAP und POP sind deaktiviert, in meinem GMail-Einstellungen, so dass darin die Lösung sein kann.
Den URL, der nimmt mich auf die Nachricht sieht wie folgt aus:
(etwas unkenntlich gemacht, falls es persönliche)
Frage ich mich, ob
source=atom
könnte Ihnen hilfreich sein, da diese Anwendung scheint der Zugriff auf die ID, die Sie suchen.Es ist schon eine Weile her, aber wer findet sich selbst auf die Suche nach dieser Informationen sollten dies Lesen:
die oben ist ein Auszug aus der folgenden Quelle: https://developers.google.com/gmail/imap_extensions?csw=1#access_to_the_gmail_unique_message_id_x-gm-msgid
War ich mit diesen zu kämpfen, auch, und dann fand ich die UID ist eigentlich das gleiche wie die Google-Message-ID.
Die UID ist eine Ganzzahl und der Google Message-ID ist die Hexadezimale version von den, die.
Unsicher Umwandlung in ruby, aber versuchen Sie dies: Konvertieren einer Ganzzahl in einen hexadezimalen string in Ruby