erhält eine E-Mail ungelesen Inhalts, ohne ungelesenen Zustand zu beeinflussen [Duplikat]
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?
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 [
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()