Unix-Mails (von Sendmail empfangen) in ein Linux-Verzeichnis kopieren (einzeln)

Unix-Mails (von Sendmail empfangen) in ein Linux-Verzeichnis kopieren (einzeln)

Kennt jemand eine Möglichkeit, alle neu eingegangenen E-Mails (unter Fedora Linux) zu kopieren und in einem Linux-Verzeichnis zu speichern (nicht in einem anderen E-Mail-Ordner, sondern im Verzeichnis des Linux-Dateisystems)?

Wir verwenden Procmail als Zustellsystem. Ich habe mir viele Dokumente angesehen, aber sie zeigen alle nur zwei Muster in Bezug auf das Kopieren:

  1. An mail.bkp anhängen – nicht sicher, warum alle E-Mails an eine Datei angehängt werden?
  2. Alles in /dev/null einfügen – um Spam zu verarbeiten

Ich brauche einen 'leichtgewichtigen' Mechanismus, um alle neuen Mails in ein Linux-Dateisystem zu kopieren/archivieren, wie

  • /home/Benutzername/data/archive/mail1.x
  • /home/Benutzername/data/archive/mail2.x
  • /home/Benutzername/data/archive/mail3.x

und dann plane ich, einen Java-Verzeichnis-Listener zu verwenden, um diese E-Mails parallel zu lesen.

Bitte geben Sie mir Ihren wertvollen Rat.

Antwort1

Eine Lösung für Ihr Problem wäre, Ihre procmailrc-Datei zu verwenden, um eine Kopie der E-Mail in einem Maildir-Format zu speichern.

Maildir speichert jede E-Mail als separate Datei, was Ihr einziges Problem löst. Wenn Sie die E-Mail kopieren, wird sie außerdem weiterhin an die anderen vorhandenen Speicherorte gesendet:

Ihre procmailrc würde ungefähr am Anfang folgende (oder ähnliche) Zeilen enthalten:

:0c:
$HOME/Maildir/

Sie müssen den Ordner Maildirnoch in Ihrem Home-Verzeichnis erstellen.

Antwort2

Die Übermittlung in ein Verzeichnis, nur um dann ein aufwändiges System zur Überwachung dieses Verzeichnisses zu haben, ist ziemlich umständlich. Wenn Ihr Java-Programm Standardeingaben lesen kann, leiten Sie einfach direkt dorthin weiter.

:0
| /path/to/java -crash -boom -bang -coredump=always

verwandte Informationen