Frage

    

Diese Frage bereits eine Antwort hier:

         

sein Moment ein gmail Kasten aber früher oder später ich mag es Skala.

Ich mag eine Kopie eines lebenden persönlichen Mailbox (Eingang und Ausgang) synchronisieren woanders, aber ich will nicht den unread Zustand aller ungelesenen Nachrichten beeinflussen.

, welche Art von Zugriff wird dies am einfachsten machen? Ich kann keine Informationen finden, wenn IMAP in den Lesezustand auswirken wird, aber es scheint, ich manuell eine Nachricht ungelesen zurücksetzen. Pop definitionsgemäß keinen Einfluss auf ungelesenen Zustand aber niemand scheint Pop zu nutzen, um ihre gmail zugreifen zu können, warum?

War es hilfreich?

Lösung 5

Wenn es jemand hilft, GAE können Sie E-Mail als erhalten HTTP-Anforderung , also jetzt bin ich nur E-Mails dort weitergeleitet werden.

Andere Tipps

In der IMAP-Welt, jede Nachricht hat Flaggen. Sie können die einzelnen Flaggen auf jede Nachricht festgelegt. Wenn Sie eine Nachricht holen, dann ist es tatsächlich möglich, die Nachricht zu lesen, ohne die \ Gesehen Flagge anwenden.

Die meisten Mail-Clients wird die \ gesehen Flagge gelten, wenn die Nachricht gelesen wird. So hat, wenn die Nachricht bereits gelesen wurde, außerhalb der App, dann müssen Sie die \ gesehen Flagge entfernen.

Wie FYI ... hier ist der relevante Teil über Flaggen aus dem RFCs:

Ein System ist ein Flag Namen, die in diesem vordefinierten ist    Spezifikation. Alle System-Flags beginnen mit "\". bestimmte System    Flags (\ Deleted und \ gesehen) haben spezielle Semantik beschrieben    anderswo. Die derzeit definierten System-Flags sind:

    \Seen
       Message has been read

    \Answered
       Message has been answered

    \Flagged
       Message is "flagged" for urgent/special attention

    \Deleted
       Message is "deleted" for removal by later EXPUNGE

    \Draft
       Message has not completed composition (marked as a draft).

    \Recent
       Message is "recently" arrived in this mailbox.  This session
       is the first session to have been notified about this
       message; if the session is read-write, subsequent sessions
       will not see \Recent set for this message.  This flag can not
       be altered by the client.

       If it is not possible to determine whether or not this
       session is the first session to be notified about a message,
       then that message SHOULD be considered recent.

       If multiple connections have the same mailbox selected
       simultaneously, it is undefined which of these connections
       will see newly-arrived messages with \Recent set and which
       will see it without \Recent set.

Es gibt eine .PEEK Option auf dem FETCH-Befehl in IMAP, die explizit den / gesehen Flag nicht gesetzt werden.

Lesen Sie der Befehl in RFC 3501 FETCH und nach unten scrollen ein bisschen auf Seite 57 oder für „BODY.PEEK“ suchen.

Sie müssen Abschnitt angeben, wenn Sie BODY.PEEK verwenden. Abschnitte werden erläutert in IMAP Fetch Befehl Dokumentationen unter BODY [

] << >> Teil

import getpass, imaplib

M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(BODY.PEEK[])')
    print 'Message %s\n%s\n' % (num, data[0][5])
M.close()
M.logout()

PS: ich fix Antwort wollte gegeben Gene Wood aber war nicht erlaubt, weil bearbeiten war kleiner als 6 Zeichen (BODY.PEEK -> BODY.PEEK [])

Niemand verwendet Pop, weil sie in der Regel wollen die zusätzliche Funktionalität von IMAP, wie Nachrichtenstatus zu verfolgen. Wenn diese Funktionalität nur in der Quere und Bedürfnissen Abhilfen bekommen, denke ich POP mit ist die beste Wahl! -)

Um Follow-up auf Dan Goldsteins Antwort oben , die Syntax in python Aufruf wäre die ".PEEK" Option zu verwenden IMAP4.fetch und gibt es" BODY.PEEK "

diese im Python docs :

import getpass, imaplib

M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(BODY.PEEK)')
    print 'Message %s\n%s\n' % (num, data[0][5])
M.close()
M.logout()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top