diff --git a/README.md b/README.md index 33165ba..cb3e0dc 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,29 @@ # trash-email-alias -a dovecot sieve 's script and configuration to generate random alias +a dovecot sieve 's script and configuration to generate a temporary random alias # usage Just send an email to the configured em-mail generator. It will respond you and indicate what is your alias. +You can test it by sending a mail to [ getalias Arobaze tinad.fr ] + # Configure -Need dovecot and dovecot pigeon hole. +You need an e-mail server with dovecot and sieve. The mail box structure is the classical one. +Add a colomn named "temporary" type Boolean, default 0 to the table alias. So alias table structure is: + ++-----------+--------------+------+-----+---------------------+-------+ +| Field | Type | Null | Key | Default | Extra | ++-----------+--------------+------+-----+---------------------+-------+ +| address | varchar(255) | NO | PRI | | | +| goto | text | NO | | NULL | | +| domain | varchar(255) | NO | | | | +| created | datetime | NO | | 0000-00-00 00:00:00 | | +| modified | datetime | NO | | 0000-00-00 00:00:00 | | +| active | tinyint(1) | NO | | 1 | | +| temporary | tinyint(1) | NO | | 0 | | ++-----------+--------------+------+-----+---------------------+-------+ + + + On /etc/dovecot/dovecot.conf my plugin section looks like: plugin { @@ -29,4 +47,8 @@ On /etc/dovecot/dovecot.conf my plugin section looks like: (...) } + Change your mysql credentials on cron/purge.sh and execute/genalias.sh + In my case, this files are owned by the unix user "dovecot". + + Add purge.sh on your crontab. Evrey 10 minutes is enougth. \ No newline at end of file diff --git a/cron/purge.sh b/cron/purge.sh index 6f06586..ef40068 100755 --- a/cron/purge.sh +++ b/cron/purge.sh @@ -6,9 +6,12 @@ MYSQLPATH="/usr/bin/mysql" MYSQLDB="postfix" MYSQLUSER="postfix" MYSQLPWD="******" +LOGGERPATH="/usr/bin/logger" +LOGFILE="/var/log/genalias.log" + TTL="3600" -$MYSQLPATH -u $MYSQLDB -p$MYSQLPWD << EOF +$MYSQLPATH -u $MYSQLUSER -p$MYSQLPWD $MYSQLDB<< EOF UPDATE alias SET active='0' WHERE DOMAIN='tinad.fr' @@ -16,3 +19,6 @@ $MYSQLPATH -u $MYSQLDB -p$MYSQLPWD << EOF AND created < (UNIX_TIMESTAMP() - $TTL) AND temporary='1'; EOF + +$LOGGERPATH -s "Inactivate temporary alias older than 1 hour" 2> $LOGFILE +exit 0 \ No newline at end of file diff --git a/execute/genalias.sh b/execute/genalias.sh index 5fa7293..c5c5a8c 100755 --- a/execute/genalias.sh +++ b/execute/genalias.sh @@ -20,6 +20,8 @@ MYSQLPWD="******" OPENSSLPATH="/usr/bin/openssl" DOMAIN="tinad.fr" LOGGERPATH="/usr/bin/logger" +LOGFILE="/var/log/genalias.log" + #escape mail: printf -v MAIL "%q" "$1" @@ -67,7 +69,5 @@ ALIASFULL=`$MYSQLPATH -B -u $MYSQLUSER -p$MYSQLPWD -D $MYSQLDB --disable-column- fi printf "Hi, Your requested alias is $ALIASFULL, You will receive all mails sending to this alias during one hour from now. Thanks for using this service." - -$LOGGERPATH -i -p genalias.info "Activate alias $ALIASFULL FOR $MAIL" -exit 0 - +$LOGGERPATH -s "Activate alias $ALIASFULL FOR $MAIL" 2> $LOGFILE +exit 0 \ No newline at end of file