TheDarkRose
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Hallo Community, da ich oft auch am Wochenende geschäftliche Emails verfasse, aber ich eigentlich will, dass dann als Datum Samstag oder Sonntag beim Empfänger aufscheint, speichere ich bis jetzt immer als Entwurf und verschicke sie dann Montags. Oft passiert mir es doch, dass ich darauf vergesse, wenn ich mal wieder unterwegs bin, und dann gehen diese erst Dienstags oder sogar Mittwochs raus. Nun, wie könnte ich Postfix so manipulieren, dass bestimmte Mails zwar angenommen werden, aber die Auslieferung um einen bestimmten Zeitpunkt verzögert wird?
|
fbartels
Anmeldungsdatum: 30. Oktober 2007
Beiträge: 314
Wohnort: Hannover
|
Welchen Client nutzt du denn? Outlook kann sowas von Haus aus, für Thunderbird habe ich auf die Schnelle ein Addon gefunden.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Evolution, aber Cluentseitig bringt mir gar nichts, weil wenn ich dann unterwegs bin, ist der Client ja nicht online.
|
fbartels
Anmeldungsdatum: 30. Oktober 2007
Beiträge: 314
Wohnort: Hannover
|
Das mit dem Senden, wenn der Client nicht mehr online ist in der Tat auch abhängig vom Server. Outlook + Exchange/Zarafa kann auch verspätet senden, wenn der Client nicht mehr zum Server verbunden ist. Da ich das aber ein interessantes Projekt finde, habe ich noch mal ein bisschen weitergegrübelt. Das folgenden ist rein theoretisch und nicht getestet, könnte aber funktionieren. 1. Postfix main.cf um smtpd_sender_restrictions ergänzen:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/hold 2. Cron der Freitags um 17 Uhr deine E-Mail Adresse im Muster "deine@email.de HOLD" in /etc/postfix/hold schreibt und anschließend ein postmap auf die Datei ausführt. Alle deine Mails landen nun beim Postfix in der Queue und werden dort nicht weiterbearbeitet. 3. Cron der Montags um 9 Uhr deine E-Mail aus /etc/postfix/hold entfernt, wieder ein Postmap macht und "postsuper -r ALL" ausführt. Edit: getestet, funktioniert.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Als Linuxer Outlook nutzen, neeee 😈 Zarafa mag ich nicht, das klopft alle Mails in die DB. Ich bin bei meiner traditionellen Postfix/Dovecot/Roundcube Kombo hängen geblieben. Das mit den Cron wäre eine Idee, trifft aber auf alle Mails von mir zu. Ein header_check auf die Mails wäre flexibler und könnte ich allen Usern anbieten ^^. Ich denke da muss ich selbst einen kleinen Daemon schreiben, der sich in die Queue hängt wie Spamassasin oder policyd und dann erst zum gegebenen Zeitpunkt die Mail an den Postfix wieder zurückschickt. Erfordert natürlich ein Plugin am Client, das einen Extra Header setzt mit dem Sendezeitpunkt, aber das könnte die feinste Lösung werden. Na dann, bin mal coden 😉
|
fbartels
Anmeldungsdatum: 30. Oktober 2007
Beiträge: 314
Wohnort: Hannover
|
Jeder wie er mag. Ich bin jetzt davon ausgegangen, dass du von deiner geschäftlichen E-Mail nur verzögerte Mails schicken willst. Sollte am Wochenende mal eine dringende Mail dabei sein, dann kannst du diese natürlich auch händisch aus der Queue raus lassen. Statt smtpd_sender_restrictions kannst du natürlich auch mit einem header_check arbeiten.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Warum einfach, wenns auch kompliziert geht 😈 Na mal schauen, auf jeden Fall wäre es eine feine Lösung. Natürlich Open Source, versteht sich von selbst. Hätte ja gehofft, es gäbe da schon was fertiges ☺
|
xabbuh
Anmeldungsdatum: 25. Mai 2006
Beiträge: 6411
|
Du müsstest dann aber zumindest auch sicherstellen, dass der Mailserver noch einmal das Datum anpasst, das in der E-Mail enthalten ist (also den Date-Header). Sonst wird die E-Mail zwar später zugestellt, aber anhand des Headers ist immer noch zu erkennen, wann Du die E-Mail erstellt hast.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Sodale, bin jetzt soweit, wenn ein X-Delay Header vorhanden ist, dass die Email gehalten wird. Gilt natürlich nur bei authentifizierter Einlieferung über den submission-Port. Wird die Email mit postsuper -r ''queueid'' wieder freigegeben, wird der Date und X-Delay Header gelöscht und dank Filterservice wird dann wieder ein neuer Date Header gesetzt. Ich verwende VBox.Adm, daher ist die Ausgansbasis auch die master.cf , die von VBox.Adm mitgeliefert wird. Anfolgt zeige ich auch nur die veränderten bzw. relevanten Punkte in meiner master.cf : # ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
submission inet n - - - - smtpd
-o cleanup_service_name=clsubmsn
pickup fifo n - - 60 1 pickup
-o cleanup_service_name=cldelay
-o content_filter=smtp-proxy:[localhost]:10024
cleanup unix n - - - 0 cleanup
-o always_add_missing_headers=yes
clsubmsn unix n - - - 0 cleanup
-o header_checks=pcre:/etc/postfix/delay/header_checks
cldelay unix n - - - 0 cleanup
-o header_checks=pcre:/etc/postfix/delay/cleanup # /etc/postfix/delay/header_checks
/^X-Delay:.*/ HOLD # /etc/postfix/delay/cleanup
/^Date:.*/ IGNORE
/^X-Delay:.*/ IGNORE Jetzt fehlt natürlich nur mehr ein Bashscript, dass regelmäßig die Mails in der hold Queue überprüft ob die Zeitangabe im X-Delay Header schon überschritten wurde und dann gegebenfalls die Mail freigibt ☺
|
xabbuh
Anmeldungsdatum: 25. Mai 2006
Beiträge: 6411
|
TheDarkRose schrieb: Sodale, bin jetzt soweit, wenn ein X-Delay Header vorhanden ist, dass die Email gehalten wird. Gilt natürlich nur bei authentifizierter Einlieferung über den submission-Port. Wird die Email mit postsuper -r ''queueid'' wieder freigegeben, wird der Date und X-Delay Header gelöscht und dank Filterservice wird dann wieder ein neuer Date Header gesetzt.
Den Received-Header müsstest Du vermutlich auch noch berücksichtigen.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Ein neuer Date wird eh gesetzt. Den Received Header finde ich jetzt noch so schlimm, der wird eh vom Client nicht ausgewertet.
|
xabbuh
Anmeldungsdatum: 25. Mai 2006
Beiträge: 6411
|
Ach so, ich hatte Dich so verstanden, dass der Empfänger gar nicht sehen können soll, wann die E-Mail geschrieben wurde.
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Hmm, da muss man schon neugierig sein. Aktuell sieht der Received-Header einer Testemail so aus: Received: from hn1.example.com (localhost [127.0.0.1]) by hn1.example.com
(Postfix) with ESMTP id C6EE0484121B for <me@gmail.com>; Mon,
15 Sep 2014 21:08:08 +0200 (CEST)
Received: by hn1.example.com (Postfix, from userid 106) id A8C9D48413B3;
Mon, 15 Sep 2014 21:03:01 +0200 (CEST)
Received: from [IPv6:2001:15c0:xxx] (xxx.sixxs.net
[IPv6:2001:15c0:xxx]) by hn1.example.com (Postfix) with ESMTPSA id
AEC41484121B for <me@gmail.com>; Mon, 15 Sep 2014 21:00:25
+0200 (CEST)
Klar könnte ich den Received-Header löschen. Zumindestens den ersten. Wäre sogar global schön, damit verschwinden dann alle User-IPs im Verlauf, das wäre sogar sehr schön ☺ Bisschen mehr Privatsphäre.
|
xabbuh
Anmeldungsdatum: 25. Mai 2006
Beiträge: 6411
|
Ich weiß ja nicht, wie Deine Anforderungen sind. 😉
|
TheDarkRose
(Themenstarter)
Anmeldungsdatum: 28. Juli 2010
Beiträge: 3459
|
Naja, normal halt ^^. Aber trotzdem eine gute Idee, diesen zu entfernen ☺
|