[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: postfix: Mails mit Verzögerung abschicken?



Hallo, Elimar!

On 12/04/2018 12:02:44 PM, Elimar Riesebieter wrote:

> Sicher gäbe es andere Möglichkeiten:

$ man at
Das hatte ich schon in Erwägung gezogen -- siehe Möglichkeit 3). Abgeschreckt hatte mich dies:

***
It accepts times of the form HH:MM to run a job at a specific time of day. (If that time is already past, the next day is assumed.)
***

Gesetzt den Fall, der Rechner ist gerade aus, wenn die Mail verschickt werden soll, startet das Script erst am nächsten Tag. Das führt zu einem falschen Ergebnis, denn der Name der Dateien mit dem Mailtext enthält das Datum des Tages, an dem sie verschickt werden sollen. Im Script wird dann anhand des aktuellen Datums die entsprechende Datei ausgewählt. So, wie ich es mir vorgestellt hatte (mit date die Zeit prüfen und ggf. das Script mit at später nochmals aufrufen), funktioniert es also nicht.

Etwas anders könnte es aber gehen: Das Script wird nur einmal aufgerufen. Wird für eine Adresse eine Verzögerung verlangt, wird der Mail-Text in eine temporäre Datei geschrieben; at ruft dann später ("now + $DELAY hours") s-nail auf, FROM/TO/SUBJECT und Textdatei sind zu der Zeit ja bekannt und können als Option an s-nail übergeben werden.

Nun ist ja at von Hause aus interaktiv, kann aber mit der Option -f auch den Job aus einer Datei einlesen. Ich müsste also noch zusätzlich für jede Adresse, an die Mails verzögert geschickt werden, eine temporäre Job-Datei erzeugen, die ich nach dem Einlesen gleich wieder löschen kann -- richtig?

***
echo -e "/usr/bin/s-nail -n \
            -r \"${FROMLINE}\" \
            -Sfullnames \
            -Ssmtp-hostname=localhost \
            -s \"${SUBJECT}\" \
            -. \"$TO\" < ${TMPDAT}" > ${JOB}
echo -e "rm ${TMPDAT}" >> ${JOB}

at -f ${JOB} "now + $DELAY hours"
rm ${JOB}
***

Habe ich da jetzt noch etwas Grundlegendes übersehen?

Schönen Gruß

Andreas

Attachment: pgp60QLe9ktr4.pgp
Description: PGP signature


Reply to: