Wegwerf-E-Mail-Adressen für eigenen Mailserver

Manchmal will man eine E-Mail-Adresse haben, die nur für begrenzte Zeit funktioniert. Wer einen eigenen Mailserver betreibt, kann sich einfach für jeden Tag durch einen Eintrag in der “/etc/aliases” eine neue E-Mail-Adresse anlegen, und diese nach ein paar Tagen wieder löschen.
Hier ein Beispiel:

# /etc/aliases
postmaster: root
root: arno
arno.nym: arno

arno-20200407: arno
arno-20200406: arno
arno-20200405: arno
arno-20200404: arno
arno-20200403: arno
arno-20200402: arno
arno-20200401: arno
arno-20200331: arno
[...]
anna-20200407: anna
anna-20200406: anna
anna-20200405: anna
[...]

Für jeden Tag gibt’s so eine neue E-Mail-Adresse, z.B. “arno-20200407@meinedomain.de”.

Per Skript lässt sich die Pflege der /etc/aliases wunderbar automatisieren:

#!/bin/bash
# create temporary email aliases, valid for xx days
# <username-YYYMMDD@domain.tld>

DAYSVALID=14
USERS="arno anna"

TEMPFILE=`mktemp`
# delete old aliases
for USER in ${USERS}; do
    cat /etc/aliases | grep -vE "^${USER}\-[[:digit:]]{8}:" > ${TEMPFILE}
    mv ${TEMPFILE} /etc/aliases
done

# create new aliases
for USER in ${USERS}; do
    for ((i=0;i<${DAYSVALID};i++)); do
        DAY=`date -d -${i}days +"%Y%m%d"`
        echo "${USER}-${DAY}: ${USER}" >> /etc/aliases
    done
done

# activate changes in aliases file
newaliases

In “DAYSVALID” die gewünschte Gültigkeitsdauer in Tagen eintragen und in “USERS” die durch Leerzeichen getrennten Usernamen, für die temporäre Adressen erstellt werden sollen.
Die letzte Zeile “newaliases” wird von Postfix benötigt um Änderungen in /etc/aliases zu übernehmen – wenn du einen anderen Mailserver benutzt musst du die Zeile entsprechend anpassen.

Einfach 1x täglich per Cronjob aufrufen, und fertig.