Ich denke darüber nach, mutt
zu E-Mail zu wechseln . Ich habe jedoch einige Anforderungen.
- Ich möchte die E-Mail offline speichern können.
- Ich möchte, dass E-Mails sofort an meinen lokalen Computer gesendet werden, im Gegensatz zu regelmäßigen Abfragen (z. B. mithilfe von IMAP IDLE).
Für die Offline-Speicherung könnte ich imapoffline
oder verwenden isync
. Ich verstehe, dass Letzteres stabiler ist. Die einzige Option, die ich für isync gefunden habe, ist mswatch . Leider muss hierfür ein Programm auf dem Remote-E-Mail-Server installiert sein, was nicht möglich ist. Gibt es eine Lösung, die ich mutt
mit Offline-E-Mail-Speicherung und sofortiger E-Mail-Zustellung verwenden kann?
Antworten:
Die einzige Möglichkeit, E-Mails sofort an Ihren Client zu senden, besteht darin, dass der Server dies tut, sobald die E-Mails zugestellt werden. Dies erfordert zwangsläufig die Installation und Ausführung von Software auf dem Mailserver, sodass jede mögliche Lösung das gleiche Problem wie hat
mswatch
.Häufiges Abrufen ist wahrscheinlich die beste Option.
Nach meiner Erfahrung
offlineimap
funktioniert es gut genug, alle paar Minuten von cron aus zu laufen oder ähnliches.Einige Imap-Abrufprogramme unterstützen den Befehl imap IDLE. IDLE ist nicht genau "Push" (da die E-Mail vom Client immer noch vom Server abgerufen wird), führt jedoch im Allgemeinen zu fast sofortigen Aktualisierungen Ihrer lokalen Mailbox.
offlineimap unterstützt dies, im Handbuch heißt es jedoch: "Die IDLE-Unterstützung ist unvollständig und experimentell. Möglicherweise treten Fehler auf."
fetchmail unterstützt IDLE seit Version 5.0
quelle
offlineimap
hat etwas Unterstützung für IDLE, aber das Handbuch sagt "IDLE-Unterstützung ist unvollständig und experimentell. Es können Fehler auftreten."Don't set the automatic send/receive interval too short [less than 5 minutes] or you could end up endlessly polling the mail server, send/receive errors and sometimes even duplicates
(obwohl dies für einen bestimmten Client ist).fetchmail
unterstützt auch IDLE seit v5.0 fetchmail.info/fetchmail-features.htmlLeider waren die beiden in der anderen Antwort vorgeschlagenen Möglichkeiten unvollkommen.
offlineimap
war im besten Fall ziemlich fehlerhaft. Beispielsweise gibt es keine Möglichkeit, ein Skript automatisch auszuführen, nachdem neue E-Mails eingegangen sind.fetchmail
synchronisiert nicht bidirektional.Stattdessen war die Lösung, die ich letztendlich verwendete, eine Kombination aus Imapnotify und Isync . Ich habe konfiguriert
imapnotify
, dass ein Skript ausgeführt wird, wenn neue E-Mails ausgelöst werden (über IDLE).Dieses Skript wird
mbsync "${channel}:INBOX"
abhängig davon ausgeführt, welches Konto über E-Mails verfügt. Als nächstes läuft esnotmuch new
. Schließlich wird die Anzahl der ungelesenen E-Mails in einer Datei wie folgt aufgezeichnet. Der Inhalt dieser Datei wird in einem Bereich meiner Desktop-Umgebung angezeigt.Aktualisieren
imapnotify (nodejs-imapnotify) trennt die Verbindung regelmäßig ohne Warnungen / Fehler und verpasst häufig neue E-Mails. python-imapnotify funktioniert auch zeitweise. Allerdings funktioniert goimapnotify meiner Erfahrung nach sehr gut. Es fällt selten aus, und wenn dies der Fall ist (z. B. aufgrund von Netzwerkabbrüchen und / oder Unterbrechungszyklen), startet es sich schnell und ohne großen Aufwand neu.
quelle
offlineimap
: Verwenden Sie diepostsynchook
Option in der Konfiguration; Sonotmuch new
"No hook exists for “run after an IDLE response”. Email will show up, but may not be processed until the next refresh cycle."