Lato server è necessario installare e configurare il servizio rsyncd. Nel file /etc/default/rsync è necessario abilitare il servizio alla riga RSYNC_ENABLE=true, in modo che possa essere avviato da /etc/init.d/rsync start, anche al riavvio dal sistema. Inoltre è necessario creare il file /etc/rsyncd.conf con la configurazione minima, e il modulo eml per l'invio delle bounce mail da parte del client. Parte essenziale è la limitazione degli IP, senza i quali si rischia davvero troppo. Idealmente queste regole si inseriscono nel firewall, al riguardo della porta TCP 873 in ingresso, ma in mancanza va bene anche allow hosts di rsyncd.conf. Alla fine delle operazioni si avvia il servizio con /etc/init.d/rsync start.
# nano /etc/rsyncd.conf
use chroot = false
max connections = 4
read only = true
list = false
uid = nobody
gid = nobody
hosts allow = 5.6.7.8
ignore errors
ignore nonreadable
[eml]
uid = www-data
gid = www-data
path = /vhosts/domain.tld/httpdocs/undeliverable
read only = false
Per chi possiede shorewall, si aggiunge la seguente riga al file /etc/shorewall/rules e alla fine si riavvia con shorewall restart:
ACCEPT net:5.6.7.8 $FW tcp 873
Poi, si crea una nuova cartella, ad esempio quella indicata a path della configurazione di rsyncd, accessibile dal server web e si aggiunge lo script PHP con il nome di file desiderato, ad esempio undeliverable.php.
Infine, si crea il cronjob nel file /etc/cron.d/delmail con i seguenti contenuti (esegue ogni ora piena):
0 * * * * root php-cgi -q /vhosts/domain.tld/httpdocs/undeliverable/undeliverable.php > /dev/null 2>&1
Lo script va provato prima ed eliminato tutti gli eventuali problemi, sarà pronto per l'uso. Conviene prefabbricare una email finta per un utente conosciuto, ad esempio un utente di prova, e quindi verificato il corretto funzionamento, anche in automatico.