So verhindern Sie, dass Fetchmail Nachrichten als gelesen markiert


9

Wenn fetchmailmein IMAP-Posteingang überprüft wird, werden alle ungelesenen Nachrichten heruntergeladen und das Flag "Ungelesene Nachrichten" auf dem Mailserver entfernt.

Gibt es eine Möglichkeit, fetchmailneue Nachrichten herunterzuladen, ohne sie als gelesen zu markieren?

Ich procmailverarbeite neue E-Mail-Nachrichten automatisch und führe Skripts basierend auf E-Mail-Regeln aus. Daher möchte ich, dass die Nachrichten heruntergeladen werden. Ich würde es jedoch vorziehen, wenn das Flag "Neue Nachricht" für Nachrichten beibehalten wird, die ich in meinem E-Mail-Client noch nicht gelesen habe.

Das ist meine .fetchmailrcDatei:

poll mail.domain.com protocol IMAP
    user "user@domain.com"
    password 'password'
    folder 'INBOX'
    keep
    ssl
    mda "/usr/bin/procmail -f %F"

Antworten:


7

Ich konnte keine Möglichkeit finden, das Flag "ungelesen" auf dem Server beizubehalten oder erneut zu installieren.

Am Ende wechselte ich zu getmail , einer moderneren Alternative zu fetchmailPython. Im Gegensatz dazu fetchmailwerden getmailNachrichten basierend auf der Nachrichten-ID des Servers und nicht auf dem Flag "ungelesen" abgerufen.

Dies ist die getmailKonfigurationsdatei, die ich erstellt habe und die meiner fetchmailKonfiguration entspricht:

# ~/.getmail/getmailrc
# Configuration file to retrieve messages over secure IMAP
# and send them to procmail

[retriever]
type=SimpleIMAPSSLRetriever
server=mail.domain.com
username=user@domain.com
password=password

[destination]
type=MDA_external
path=/usr/bin/procmail

[options]
verbose=0
read_all=false
delete=false
delete_after=0
delete_bigger_than=0
max_bytes_per_session=0
max_message_size=0
max_messages_per_session=0
delivered_to=false
received=false
message_log=~/getmail.log
message_log_syslog=false
message_log_verbose=true

-1

Meine fetchmail(1)zitiert Flaggen -k, --keepund Option keepauf die Nachrichten nicht herunterladen.

fetchmail-6.3.22-1.fc18.x86_64, Fedora 18.


4
Nein, das keepFlag soll verhindern, dass Fetchmail die Nachricht nach dem Herunterladen vom Server löscht. In der Tat verwende ich das keepFlag, da ich die Nachrichten auf dem Server behalten möchte. Ich möchte nur einen Weg finden, um auch das Flag "Neue Nachricht" beizubehalten.
Steve HHH

Und woher weiß Fetchmail (oder sonst jemand), dass es die Nachricht bereits erhalten hat?
vonbrand

Durch Verfolgen der Nachrichten-ID auf dem Server wird das Gleiche wie bei einem E-Mail-Client getan. Zum Beispiel würde ich hoffen, dass fetchmail weiß, dass es die Nachrichten-ID 394 zuletzt heruntergeladen hat. Wenn es also das nächste Mal bis zur Nachricht 400 findet, sollte es die Nachrichten 395-400 herunterladen, unabhängig von ihrem Status als "ungelesen". Das Herunterladen neuer Nachrichten, die nur auf dem Status des Flags "ungelesen" basieren, wäre für ein Tool mit dem Ruf "Fetchmail" enttäuschend einfach.
Steve HHH

Den Überblick über die gelesenen / ungelesenen Nachrichten zu behalten, ist genau das, wofür das Lese- / ungelesene Flag in der Nachricht verwendet wird ...
vonbrand

Tatsächlich. Und ich möchte dieses Flag wenn möglich verwenden, damit ich die Nachrichten verfolgen kann, die ich gelesen habe. Das Problem ist, dass ich das nicht mehr kann, weil fetchmail alle meine Nachrichten als gelesen markiert. Ich würde also gerne in der Lage sein, Fetchmail meine E-Mails "lesen" zu lassen, ohne Nachrichten als gelesen zu markieren. Nehmen Sie zum Beispiel mein Telefon und meine Desktop-E-Mail-Clients. Beide "lesen" meine Nachrichten und können zwar E-Mail-Regeln anwenden, aber keiner von ihnen markiert Nachrichten als gelesen, bis ich sie angesehen habe.
Steve HHH
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.