Comment empêcher Fetchmail de marquer les messages comme lus

9

Lorsque fetchmailje vérifie ma boîte de réception IMAP, il télécharge tous les messages non lus et supprime l'indicateur de message «non lu» sur le serveur de messagerie.

Existe-t-il un moyen de fetchmailtélécharger de nouveaux messages sans les marquer comme lus?

J'utilise procmailpour traiter automatiquement les nouveaux messages électroniques et exécuter des scripts en fonction des règles de messagerie. Je souhaite donc que les messages soient téléchargés, mais je préférerais que l'indicateur "nouveau message" soit conservé sur les messages que je n'ai pas encore lus dans mon client de messagerie.

Voici mon .fetchmailrcdossier:

poll mail.domain.com protocol IMAP
    user "[email protected]"
    password 'password'
    folder 'INBOX'
    keep
    ssl
    mda "/usr/bin/procmail -f %F"
Steve HHH
la source

Réponses:

7

Je n'ai pas pu trouver de moyen de conserver ou de rétablir le drapeau «non lu» sur le serveur.

Au final, je suis passé à utiliser getmail , une alternative plus moderne à fetchmailcelle qui est écrite en Python. Contrairement à fetchmail, getmailrécupère les messages en fonction de l'ID de message du serveur plutôt que de l'indicateur de message «non lu».

Voici le getmailfichier de configuration que j'ai créé qui fournit une équivalence à ma fetchmailconfiguration:

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

[retriever]
type=SimpleIMAPSSLRetriever
server=mail.domain.com
[email protected]
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
Steve HHH
la source
-1

Mon fetchmail(1)cite des drapeaux -k, --keepet l'option keepde ne pas télécharger les messages.

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

vonbrand
la source
4
Non, l' keepindicateur sert à empêcher fetchmail de supprimer le message du serveur une fois qu'il a été téléchargé. En effet, j'utilise le keepdrapeau, car je souhaite conserver les messages sur le serveur. Je voudrais juste trouver un moyen de garder le drapeau "Nouveau message" aussi.
Steve HHH
Et comment Fetchmail (ou quelqu'un d'autre) saura-t-il qu'il a déjà reçu le message?
vonbrand
En gardant une trace de l'identifiant du message sur le serveur, la même chose que ferait un client de messagerie. Par exemple, j'espère que fetchmail saura qu'il a téléchargé le dernier identifiant de message 394, donc si la prochaine fois qu'il trouve le message 400, il devrait télécharger les messages 395-400, quel que soit leur statut d'indicateur `` non lu ''. Le téléchargement de nouveaux messages basés uniquement sur le statut du drapeau «non lu» serait décevant et simpliste pour un outil ayant une telle réputation que fetchmail.
Steve HHH
Garder une trace des messages lus / non lus est précisément à quoi sert l'indicateur lu / non lu du message ...
vonbrand
En effet. Et j'aimerais utiliser ce drapeau si possible, afin que je puisse garder une trace des messages que j'ai lus. Le problème étant que je ne peux plus faire cela car fetchmail marque tous mes messages comme lus. Donc, ce que j'aimerais pouvoir faire, c'est que fetchmail lise mon courrier sans marquer les messages comme lus. Prenons par exemple mon téléphone et mes clients de messagerie de bureau. Ils ont tous les deux «lu» mes messages et peuvent en effet appliquer des règles de messagerie, mais aucun d'eux ne marque les messages comme lus jusqu'à ce que je les ai consultés.
Steve HHH