File: //etc/deliverrc
# fixing (F)rom
:0
* ^^rom[ ]
{
:0 fhW
| sed -e '1s/^/F/'
}
# fixing bad return-path
:0 W
* RETURNPATH ?? ^$
{
RETURNPATH=`formail -xReturn-Path: | sed -e "s/[< >]//g"`
}
:0 W
* ! RETURNPATH ?? ^.+@.+\..+$
{
:0 fW
| formail -IReturn-Path:;
}
# default deliver options
DOVECOT=YES
DOVECOT_JUNK=
:0 W
* ? test -s /home/$LOGNAME/.deliver
{
LOG="$LOGTXT will use deliver options for $LOGNAME
"
INCLUDERC=/home/$LOGNAME/.deliver
}
:0 WE
{
:0 W
* DOMAIN ?? ^$
{
# domain from LOGNAME
DOMAIN=`echo "$LOGNAME" | sed -e 's/.*@// ; s/>.*$//g'`
:0 W
* DOMAIN ?? ^$
{
# domain from recipients
DOMAIN=`formail -c -xTo: -xCC: | sed 's/,/\n/g ; s/ //g ; s/.*@//g ; s/>.*$//g' | tr -s '\n' | awk '{domains[$1]=$1} END {if (length(domains) == 1) for (domain in domains) print domain}'`
:0 W
* DOMAIN ?? ^$
{
# domain from passwd
DOMAIN=`grep -E "^$LOGNAME:.* - POP:.*" /etc/passwd | awk -F ':' '{print $5}' | sed -e 's/ .*//g'`
}
}
}
:0 W
* ! DOMAIN ?? ^$
* ? test -s /home/$DOMAIN/.deliver
{
LOG="$LOGTXT will use deliver options for $DOMAIN
"
INCLUDERC=/home/$DOMAIN/.deliver
}
:0 WE
{
:0 W
* ? test -s /etc/.deliver
{
LOG="$LOGTXT will use global deliver options
"
INCLUDERC=/etc/.deliver
}
:0 WE
{
LOG="$LOGTXT will use default deliver options
"
}
}
}
:0
* ! DOVECOT ?? ^NO$
{
:0
* JUNK ?? ^YES$
* ! DOVECOT_JUNK ?? ^$
{
JUNKFLAG=" -o lda_mailbox_autocreate=yes -o lda_mailbox_autosubscribe=yes -m $DOVECOT_JUNK"
}
DELIVERDOVECOT="/usr/iports/libexec/dovecot/deliver$JUNKFLAG -d $LOGNAME"
:0
* DOVECOT ?? ^COPY$
{
LOG="$LOGTXT delivering copy to dovecot user $LOGNAME
"
:0 cW
| $DELIVERDOVECOT
}
:0 E
{
LOG="$LOGTXT delivering to dovecot user $LOGNAME
"
:0 W
| $DELIVERDOVECOT
EXITCODE=$?
HOST
}
}
LOG="$LOGTXT delivering to mbox $LOGNAME
"
:0
$DEFAULT
HOST