ubuntuusers.de

Fetchmail - Mails auf Remote-Server belassen

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

dolfi56

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

Hallo zusammen,

ich nutze Fetchmail zum Abruf von Mails per POP3, damit diese auf einem lokalen Postfix-Dovecot-Mailserver landen.

Wie bekomme ich Fetchmail dazu, dass er Mails auf dem Remote-Server belässt und automatisch nach bspw. 30 Tagen löscht? Wie kan man das hinbekommen?

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8808

Die Mails auf dem Server bleiben mit "--keep" erhalten, siehe Fetchmail im Wiki. Eine automatische zeitgesteuerte Löschfunktion gibt es meines Wissens nach nicht. Müsstest Du Dir ggf. zusammenbasteln.

dolfi56

(Themenstarter)

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

ist ein Tutorial bekannt, um das automatische löschen auf dem Remote-Server auszulösen? Ich habe noch nichts gefunden ...

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7785

Mit einer pop3-Library in beliebiger Programmiersprache selbst basteln?

Ich bin mir nicht sicher, ob man beim POP3-Protokoll das Datum direkt sieht, oder ob man dafür jede Mail nochmal neu runterladen muss…

Bei IMAP, mit imapsync scheint es ein paar Optionen in die Richtung zu geben (minage, maxage, delete, ...) aber ob das in der Kombination klappt, habe ich nicht ausprobiert. Und das ist auch "nur" ein Perlscript.

dirkolus

Anmeldungsdatum:
17. Mai 2011

Beiträge: 2176

Wohnort: dahoam

dolfi56 schrieb:

ist ein Tutorial bekannt, um das automatische löschen auf dem Remote-Server auszulösen? Ich habe noch nichts gefunden ...

getmail kann das. getmail saugt auch Mails von einem IMAP Server.

Vorsicht: getmail will python2. Python3 akzeptiert dafür getmail6

dolfi56

(Themenstarter)

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

bin jetzt gerade dabei das mit getmail zu probieren.

Momentan sieht es so aus:

[options]
delete          = false
delete_after    = 1
read_all        = false

[retriever]
type            = SimpleIMAPSSLRetriever
server          = imap.server.de
username        = user
password        = passwort
mailboxes       = ("INBOX",)
#move_on_delete = Trash 

[destination]
type            = Maildir
path            = ~/Maildir/

Sind irgendwelche zusätzlichen Konfigurationen noch sinnvoll?

Was muss ich bei destination eintragen, wenn ich lokal Dovecot mit Postfix nutze?

Die Fetchmail Konfiguration war bisher so:

poll pop3.server.de with proto POP3
        user 'user' there with password 'passwort' is localusername here options ssl sslcertck sslcertpath /etc/ssl/certs/ sslproto tls1.2

Mit Nennung des "localusername" wurde das dann entsprechend zugestellt.

dirkolus

Anmeldungsdatum:
17. Mai 2011

Beiträge: 2176

Wohnort: dahoam

Zumindest wo ich ein 'delete_after' angegeben habe, habe ich das 'delete =' weggelassen. Genaueres weiß ich jetzt auch nicht, musst ausprobieren.

[options]
delete_after = 10
read_all = false
message_log = /path/.Maildir/log

Ansonsten nutze ich eben einen zentralen IMAP-server mit Backup etc., deswegen keine Weiterverteilung per Postfix.

dolfi56

(Themenstarter)

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

wie kann ich denn einstellen, dass Getmail alle 30 Sekunden ausgeführt werden soll? Also regelmäßig unter einer Minute halt ...

dirkolus

Anmeldungsdatum:
17. Mai 2011

Beiträge: 2176

Wohnort: dahoam

Ui, ich weiß gar nicht, wie ich getmail derzeit aufrufe ... in der crontab ist nichts drin und es ist doch schon ein paar Jahre her, dass ich das eingerichtet habe ...

Ansonsten könnte man einen systemd-service erstellen und mit sleep 30 arbeiten oder so, wenn getmail nicht als daemon betrieben werden kann (Documentation?). Oder man verknüpft getmail mit einem email-notifier ...?

weholei

Anmeldungsdatum:
7. Februar 2019

Beiträge: 809

Wohnort: Mittelfranken

Hallo

Ich löse das über ein script und cronjobs

fetch-keep.scr

#!/bin/bash
fetchmail -v -k  -m "/usr/bin/procmail -d %T"

fetch-delete.scr

#!/bin/bash
fetchmail  -v  -m "/usr/bin/procmail -d %T"

dolfi56

(Themenstarter)

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

dirkolus schrieb:

Ui, ich weiß gar nicht, wie ich getmail derzeit aufrufe ... in der crontab ist nichts drin und es ist doch schon ein paar Jahre her, dass ich das eingerichtet habe ...

Ansonsten könnte man einen systemd-service erstellen und mit sleep 30 arbeiten oder so, wenn getmail nicht als daemon betrieben werden kann (Documentation?). Oder man verknüpft getmail mit einem email-notifier ...?

Wie muss [destination] lauten, wenn Maileingänge mit MDA_external über Dovecot geführt werden sollen. Nur mit type Maildir werden die Sieve-Regeln ignoriert ...

dolfi56

(Themenstarter)

Anmeldungsdatum:
13. Mai 2014

Beiträge: 132

ok ich habe es jetzt raus gefunden

[destination]
type = MDA_external
path = /usr/lib/dovecot/dovecot-lda
arguments = ("-e", "-f", "%(sender)", "-d", "localuser")
user = localuser

Den localuser musste ich dann noch zusätzlich der Gruppe "postfix" zuordnen. Bei mir wird Dovecot mit Postfix eingesetzt.

Dann gab es noch Probleme mit Dovecot-LDA. Da half dann dieses weiter: https://www.kais-universum.de/2020/07/error-net_connect_unix-var-run-dovecot-stats-writer-failed/ vmail ersetzen mit Benutzer/Gruppe mit dem Dovecot ausgeführt wird.

Für mich stellt sich nur noch die Frage, wozu die ganzen Sachen unter "arguments" stehen. Kann mir das irgendjemand verständlich erklären?

Antworten |