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