Ich will folgendes realisieren:
Automatisches Skript welches Mails per IMAP holt und diese dann in ein Text file speichert welches ich dan weiter verarbeiten kann.
Was wären eure Vorschläge ?
Anmeldungsdatum: Beiträge: 9 |
Ich will folgendes realisieren: Automatisches Skript welches Mails per IMAP holt und diese dann in ein Text file speichert welches ich dan weiter verarbeiten kann. Was wären eure Vorschläge ? |
Projektleitung
Anmeldungsdatum: Beiträge: 12801 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 9 |
Ich habe fetchmail bereits so eingerichtet das Mail abgerufen werden. Jetzt stellt sich mir noch folgende Frage : Bei Aufrufen von fetchmail bekomme ich folgende Rückgabe: 5 Nachrichten (5 gesehene) für XXX@XXX bei imap.XXXX. Wo liegen nun diese Mails und wie kann ich diese automatisiert Anschauen ? Vielen Dank |
Projektleitung
Anmeldungsdatum: Beiträge: 12801 |
Ist schon eine Weile her, dass ich mit Wenn das nicht geht, kannst Du eventuell tricksen, indem Du |
Anmeldungsdatum: Beiträge: 990 |
Diese Antwort glieder sich in drei Abschnitte:
zu 1: Ich habe mit getmail als Alternative zu fetchmail sehr gute Erfahrungen gemacht. Es kann Emails für viele Benutzer abholen, unterstützt unterschiedliche Protokolle und kann die gesammelten Emails flexibel weiterverteilen. Letzteres sogar mit mehreren Zielen (z.B. Verteilen in ein oder mehrere Mailverzeichnisse und zusätzlich Weitergabe an ein zusätzliches Skript zur Verarbeitung). Die manpage zu getmail lässt leider die Spezifikation der Konfigurationsdatei offen, dafür kannst du die als reine Textdatei in /usr/share/doc/getmail/configuration.txt.gz lesen oder als HTML im gleichen Verzeichnis unter configuration.html. Unten habe ich noch ein Beispiel für eine funktionierende Konfiguration (Hinweise beachten) zum Abruf aus einem IMAP-Konto dargestellt. Ein Problem, dass ich unter 18.04 Server mit getmail festgestellt habe ist die Installation von python2.7 in einer Form, dass ein Binary hinter /usr/bin/python2 zu finden ist. Wenn getmail meckert, dass es dieses Programm nicht finden kann, musst du unter Umständen mit sudo update-alternatives --install /usr/bin/python2 python2 /usr/bin/python2.7 1 dafür sorgen, dass ein entsprechender Link gesetzt wird. Vorher evtl. mit update-alternatives --list python2 prüfen, ob du nicht doch noch eine ungenutzte Alternative hast. Das ist meiner Meinung nach erstmal kein unmittelbarer Fehler in getmail, sondern eher in dem ganzen Packaging- und Versionstrara um Python 2.x und 3.x begründet. Zu 2: Was sich ganz gut für das schnelle Betrachten (reiner) Textnachrichten eignet, ist mail aus mailutils. Falls du das noch installieren musst, nicht erschrecken: Es zieht mit den Abhängigkeiten eine ganze Postfix-Installation hinterher. Im Rahmen der Installation solltest du aber auch gefragt werden, wie die Grundkonfiguration aussehen soll und dort wird auch eine Option für den rein lokalen Betrieb angeboten. Ohne Parameter versucht das Programm die Mailbox (mbox-Format, eine Datei mit allen Emails) oder das Mailverzeichnis (Maildir-Format, jede Email eine Datei; heutzutage in der Regel die bessere Wahl) in /var/mail/$USER zu öffnen. Mit der Option -f kann man ein Verzeichnis oder eine Datei angeben, die es stattdessen nehmen soll. Nach dem Start öffnet sich eine kleine "Mailshell", deren Befehle du mit ? anzeigen lassen kannst. Ich empfehle dir, getmail ein paar Mails abholen zu lassen und dann mit mail drüber zu gehen und zu schauen, ob das für deinen gedachten Arbeitsablauf passen könnte. Reicht dir das nicht, weil deine Emails komplexer sind, kannst du auch zu Mutt greifen. In Kombination mit w3m sollst du damit dann sogar HTML-Emails und Bilder betrachten könnten. Du brauchst die Servereinstellungen bei Mutt weglassen, wenn du getmail/fetchmail verwendest und keine Emails senden willst. Zu 3: Ich hatte ja eine getmail-Konfiguration versprochen. Wenn der nachfolgende Codeblock in eine Datei $HOME/.getmail/getmailrc kopiert und angepasst wird, benutzt getmail diese Einstellungen. Alternativ müsste dann mit entsprechenden Schaltern oder getmails gearbeitet werden. Ich habe hier mal die Möglichkeit genutzt, mehrere Ziele anzugeben, damit du vielleicht selbst mbox und maildir testen kannst. [retriever] type = SimpleIMAPSSLRetriever server = imap.somewhere.tld username = my_login_usernme password = SuperSecretPassword # Alle Mailboxen abrufen mailboxes = ALL # Einzelne Mailboxen abrufen #mailboxes = ("MailboxA", "MailboxB") [destination] type = MultiDestination destinations = ('[mboxdest]', '[maildirdest]') # Auch möglich, aber ich wollte die zusätzlichen Sektionen zeigen. :) #destinations = ('~/Mail/inbox/', '~/Mailbox') [mboxdest] type = Mboxrd path = ~/Mailbox [maildirdest] type = Maildir path = ~/Mail/inbox/ [options] # Terminal nicht mit Meldungen füllen verbose = 0 # Nur neue (noch nicht gesehene) Nachrichten herunterladen, # siehe .getmail-Verzeichnis nach erstem Abruf read_all = false # Meldungen sind trotzdem nett ;) message_log = ~/.getmail/log Hinweise: getmail macht einen recht umfangreichen Plausibilitätscheck beim Lesen der Konfigurationsdatei, wobei es grobe Schnitzer natürlich nicht verhindert. Am ehesten wird es dich erstmal anmeckern, dass die Mailbox-Datei nicht existiert (zu beheben mit mkdir -p $HOME/Mail/inbox/{new,cur,tmp} Ich glaube, das war's fürs erste. 😀 |
(Themenstarter)
Anmeldungsdatum: Beiträge: 9 |
Vielen Dank für die Antworten. Ich habe jetzt folgendes Pobiert: 1. Mit Fetchmail Mails abrufen 2. Diese mit mu extract Jetzt habe ich aber folgendes Problem: Dies Funktioniert wenn es nur ein Mail gibt. Wenn jetzt aber 2 Mails heruntergeladen werden, funktioniert mein extrahieren mit Text nicht mehr. Wie kann ich die Mails auseinander nehmen sodass ich jeweils nur den Text habe ? Vielen Dank |
Anmeldungsdatum: Beiträge: 990 |
Wie versuchst du denn derzeit, die Inhalte zu extrahieren? Wenn ich mir die Anleitung zu mu-find anschaue, bietet es sich an, dieses als Zwischenschritt einzubinden. Hier insbesondere auf die Option |
(Themenstarter)
Anmeldungsdatum: Beiträge: 9 |
Da ich mit fetchmail keine Mails in einen anderen Ordner verschieben konnte nutze ich nun getmail. Dort ist die Extraktion um einiges einfacher da die Mails im maildir format abgespeichert werden können. Im Moment kämpfe ich aber mit folgender Fehlermeldung : getmailrc: operation error (IMAP error (command COPY ('7926', 'Posteingang.Test') returned NO ['[TRYCREATE] UID COPY failed'])) Diesen bekomme ich aufgrund folgendem Parameter : move_on_delete = Posteingang.Test Ich glaube das ich eine falsche UID für den Ordner nehme. Kann das sein ? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 9 |
Habs herausgefunden. Lag an einer Falschen UID. Anstat Inbox.Test , Inbox/Test |