Mail aus kompletten Quelltext anlegen?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Mail aus kompletten Quelltext anlegen?

Thomas Barth-2
Hallo,

ich habe mein Mailsystem so angelegt, dass von Spamassassin erkannter
Spam direkt abgewiesen und eine Kopie der Mail in ein
Quarantäne-Verzeichnis komprimiert als gz-Datei abgelegt wird. Eine
kurze Info-Mail geht dann an mich, dass eine Mail abgewiesen wurde, mit
dem Betreff: "Eine Mail von <senderadresse> an <empfängeradresse> wurde
abgelehnt. " Wenn die Mail aufgrund des Absenders doch gelesen werden
soll, gibt es in der Mail einen Link, um die Mail aus der Quarantäne
anzufordern.

Nun liegt der Quelltext der Mail ja komprimiert als gz-Datei vor. Wie
bekomme ich diese Mail nun vernünftig ins new-Verzeichnis? Mit zcat
/path/to/file.gz | mail -s "Mail von ..." -r postmaster@... tbarth@...
erhalte ich den gesammten Quelltext im Mailbody, was nicht so schön ist.
Die Datei entpackt ins new-Verzeichnis kopieren geht ja auch nicht so
einfach. Da müsste ich ja eine bestimmte Dateinamensnorm einhalten
bestehend aus Unixtime und Sonstiges
(1529914497.M480661P17449.mx1,S=1101,W=1126), oder? Ich weiß nicht,
woraus hier Sonstiges (M480661P17449, S-Wert, W-Wert) besteht. Ginge das
irgendwie?

Gruß,
Thomas B.


Reply | Threaded
Open this post in threaded view
|

Re: Mail aus kompletten Quelltext anlegen?

Florian Streibelt

Hallo,

On Mo, 25 Jun 2018 at 10:44:44 +0200, Thomas Barth wrote:

> Die Datei entpackt ins new-Verzeichnis kopieren geht ja auch nicht so
> einfach. Da müsste ich ja eine bestimmte Dateinamensnorm einhalten
> bestehend aus Unixtime und Sonstiges
> (1529914497.M480661P17449.mx1,S=1101,W=1126), oder? Ich weiß nicht,
> woraus hier Sonstiges (M480661P17449, S-Wert, W-Wert) besteht. Ginge das
> irgendwie?
>

das klingt als ob Du dovecot benutzt.

schau dir mal die master.cf von postfix an, da sollte sowas in der Art stehen:

/usr/lib/dovecot/dovecot-lda -f ${sender} -a ${recipient} -d ${user}@${nexthop}

In der manpage von dovecot-lda steht welche parameter wofür sind, denk daran
dass du den korrekten empfänger ermitteln musst beim speichern der mail, im
Fall von  Bcc-Mails und Cc-Mails ist das nicht das To aus der mail.

Der local delivery agent sollte nicht als root aufgerufen werden sondern mit
der uid der auch die mailboxen gehören.


Florian

Reply | Threaded
Open this post in threaded view
|

Re: Mail aus kompletten Quelltext anlegen?

Thomas Barth-2
Hallo Florian,

ja, ich habe es vor kurzem erst von courier auf dovecot umgestellt, aber
es ist das maildir-Format. Ich habe dazu Erläuterungen gefunden, wie die
Dateinamen eindeutig angelegt werden können:
https://cr.yp.to/proto/maildir.html

M steht demnach für Millisekunden / 1000 und P für die Prozess-ID, es
folgt der Hostname und noch eine Info. So habe ich das nun auch gemacht.

Dateiname zusammengesetzt:

filename="${seconds}.M${millis}P${BASHPID}.${myhostname},S=1101,W=1126"

Die komprimierte Maildatei wird zuerst im tmp-Unterverzeichnis des
Mailsdirs entpackt und danach einfach in das new-Unterverzeichnis
verschoben. Sobald der Client es abruft, verschiebt dieser die Datei ins
cur-Unterverzeichnis und ändert dabei die Info im Dateinnamen:

'/path/to/my/maildir/tbarth/tmp/1529933468.M204530P26467.mx1,S=1101,W=1126'
->
'/path/to/my/maildir/tbarth/new/1529933468.M204530P26467.mx1,S=1101,W=1126'

Wenn es abgerufen wurde:

/path/to/my/maildir/tbarth/cur/1529933468.M204530P26467.mx1\,S\=285856\:2\,S



Gruß,
Thomas B.


Am 25.06.2018 um 14:23 schrieb Florian Streibelt:

> Hallo,
>
> On Mo, 25 Jun 2018 at 10:44:44 +0200, Thomas Barth wrote:
>
>> Die Datei entpackt ins new-Verzeichnis kopieren geht ja auch nicht so
>> einfach. Da müsste ich ja eine bestimmte Dateinamensnorm einhalten
>> bestehend aus Unixtime und Sonstiges
>> (1529914497.M480661P17449.mx1,S=1101,W=1126), oder? Ich weiß nicht,
>> woraus hier Sonstiges (M480661P17449, S-Wert, W-Wert) besteht. Ginge das
>> irgendwie?
>>
> das klingt als ob Du dovecot benutzt.
>
> schau dir mal die master.cf von postfix an, da sollte sowas in der Art stehen:
>
> /usr/lib/dovecot/dovecot-lda -f ${sender} -a ${recipient} -d ${user}@${nexthop}
>
> In der manpage von dovecot-lda steht welche parameter wofür sind, denk daran
> dass du den korrekten empfänger ermitteln musst beim speichern der mail, im
> Fall von  Bcc-Mails und Cc-Mails ist das nicht das To aus der mail.
>
> Der local delivery agent sollte nicht als root aufgerufen werden sondern mit
> der uid der auch die mailboxen gehören.
>
>
> Florian
>

Reply | Threaded
Open this post in threaded view
|

Re: Mail aus kompletten Quelltext anlegen?

Florian Streibelt
On Mo, 25 Jun 2018 at 15:55:22 +0200, Thomas Barth wrote:

> Hallo Florian,
>
> ja, ich habe es vor kurzem erst von courier auf dovecot umgestellt, aber
> es ist das maildir-Format. Ich habe dazu Erläuterungen gefunden, wie die
> Dateinamen eindeutig angelegt werden können:
> https://cr.yp.to/proto/maildir.html


Warum das Rad neu erfinden - der delivery agent wendet auch die sieve regeln
an und updated ggf die metadaten und du musst dir keine Gedanken machen wenn
sich das Format mal ändert oder Du umstellen willst - weil er die
Konfiguration beachtet.

Florian