ubuntuusers.de

Postfix dovecot mailanhaenge extrahieren

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

ralfoertner

Anmeldungsdatum:
17. Februar 2018

Beiträge: 31

Hallo!

Ich betreibe einen Postfix Dovecot der macht was ich von ihm will.

Nun tritt die Aufgabenstellung auf, das die Mailanhaenge eines bestimmten Benutzers extrahiert und in ein Verzeichnis kopiert werden sollen.

Ich hoffe die Frage ist in diesem Forum richtig!

Ich habe schon etwas gegoogelt aber so was richtig passendes nicht gefunden.

Leider bin ich auch nicht der Supershellprogrammierer.

Ich wäre sehr dankbar für ein paar Tipps!

MfG RO

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5572

In Postfix und Dovecot (+Sieve) ist mir kein Weg bekannt, ueber den man direkt an die Anhaenge ran kommt du brauchst also jedenfalls ein externen Skript/Programm, das die Emails aufdroeselt.

Mit Postfix kannst aber jedenfalls filtern (nach Empfaenger) mit header_checks und solche Mails dann an ein externes Programm uebergeben, zb mit pipe, aber da gibts noch mehr Moeglichkeiten. Viele Filter funktionieren genau so.

In Dovecot kannst du mit Sieve ebenfalls externe Programme aufrufen, auf diese Art kann man Spamfilter trainieren: vnd.dovecot.execute

ralfoertner

(Themenstarter)

Anmeldungsdatum:
17. Februar 2018

Beiträge: 31

Danke für die Tipps.

Kennt jemand vielleicht ein solches Script oder Tool?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

ralfoertner schrieb:

Kennt jemand vielleicht ein solches Script oder Tool?

Schreib dir einfach ein kleines Skript dafür. In der /etc/aliases definierst du dann einen Alias, für den die Mails an das Skript geleitet werden sollen:

scriptalias: "|/usr/local/bin/deinskript.pl"

Wenn du virtuelle Nutzer und Domains hast, kannst du dafür noch eine Umleitung einbauen:

nutzer@deinedomain.de scriptalias@localhost

Das Skript müsste dann die Parts aus der Email auslesen und das angehängte Archiv entpacken. Ein Gerüst für so ein Skript könnte so aussehen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env perl

use strict;
use Data::GUID;
use File::Path qw(remove_tree);
use MIME::Parser;
use MIME::Entity;

my $tmpdir = "/tmp/".Data::GUID->new();
mkdir( $tmpdir );

my $parser = MIME::Parser->new();
$parser->output_dir( $tmpdir );
my $entity = $parser->read( \*STDIN );

# Hier kannst du dann die Parts durchgehen und entsprechend behandeln, also
# beispielsweise Archive entpacken...

remove_tree( $tmpdir );

ralfoertner

(Themenstarter)

Anmeldungsdatum:
17. Februar 2018

Beiträge: 31

Danke!

Antworten |