скрипт старта smtp я брал отсюда:
http://qmail.jms1.net/scripts/servic...mtpd-run.shtml
ну, естественно немного пути подрихтовал в соответствии со своим расположением взаимосвязанных сервисов:
Код:
#!/bin/sh
exec 2>&1
VQ="/var/qmail"
PATH="$VQ/bin:/usr/local/bin:/usr/bin:/bin"
QUSER=qmaild
LOCAL=`head -1 $VQ/control/me`
IP=0.0.0.0
PORT=25
SSL=0
SSL_CERT="$VQ/control/servercert.pem"
SMTP_CDB="/usr/local/vpopmail/etc/tcp.smtp.cdb"
MAX=30
SMTPD="qmail-smtpd"
FORCE_TLS=0
DENY_TLS=0
MFCHECK=3
QMAILSMTPD_LOG_MAIL=1
QMAILSMTPD_LOG_RCPT=1
AUTH=1
REQUIRE_AUTH=1
ALLOW_INSECURE_AUTH=0
CHECKPW="/usr/local/vpopmail/bin/vchkpw"
TRUE=`which true`
VALIDRCPTTO_CDB="$VQ/control/validrcptto.cdb"
VALIDRCPTTO_LIMIT=10
VALIDRCPTTO_LOG=2
SPFBEHAVIOR=3
SPF_LOG=1
SPF_BLOCK_PLUS_ALL=1
NOP0FCHECK=1
QDUID=`id -u $QUSER`
QDGID=`id -g $QUSER`
if [ -z "$IP" -o "$IP" = "unset" ]
then
echo "The IP variable is not set in the run script. Cannot start."
sleep 5
exit 1
fi
if [ -z "$QDUID" -o -z "$QDGID" -o -z "$MAX" -o -z "$LOCAL" \
-o -z "$SSL" -o -z "$AUTH" ]
then
echo "One of the variables QDUID, QDGID, MAX, LOCAL, SSL, or AUTH"
echo "is not set in the run script. Cannot start."
sleep 5
exit 1
fi
if [ ! -f $VQ/control/rcpthosts ]
then
echo Creating emtpy $VQ/control/rcpthosts file to prevent open relay.
touch $VQ/control/rcpthosts
chmod 644 $VQ/control/rcpthosts
fi
if [ -f $VQ/bin/qmail-scanner-queue ]
then
export QMAILQUEUE=$VQ/bin/qmail-scanner-queue
elif [ -f $VQ/bin/qmail-scanner-queue.pl ]
then
export QMAILQUEUE=$VQ/bin/qmail-scanner-queue.pl
elif [ -f $VQ/bin/qmail-spamassassin -a -f /usr/bin/spamassassin ]
then
export QMAILQUEUE=$VQ/bin/qmail-spamassassin
fi
if [ "$SSL" = "1" ]
then
if ! which sslserver > /dev/null 2>&1
then
echo ERROR: sslserver not found in PATH [$PATH]
exit 1
fi
if [ ! -f $SSL_CERT ]
then
echo ERROR: $SSL_CERT does not exist
exit 1
fi
export CERTFILE=${SSL_CERT}
export KEYFILE=""
export DHFILE=""
SCMD="sslserver -e"
else
if [ -n "$SSL_CERT" ]
then
export TLS_SERVER_CERT=${SSL_CERT}
fi
SCMD="tcpserver"
fi
if [ "$IP" = "127.0.0.1" ]
then
export RELAYCLIENT=""
RBLSMTPD_PROG=""
ACMD=""
elif [ -z "${SMTP_CDB:-}" ]
then
ACMD=""
else
if [ ! -f "$SMTP_CDB" ]
then
echo ERROR: $SMTP_CDB does not exist
exit 1
fi
ACMD="-x $SMTP_CDB"
fi
if [ "$AUTH" = "1" ]
then
if [ -n "$AUTH_CDB" ]
then
if [ ! -f $AUTH_CDB ]
then
echo ERROR: AUTH_CDB file [$AUTH_CDB] does not exist
exit 1
fi
export AUTH_CDB
ARGS=""
elif [ -n "$CHECKPW" ]
then
if [ ! -f $CHECKPW ]
then
echo ERROR: $CHECKPW [$CHECKPW] program does not exist
exit 1
fi
if [ -z "$LOCAL" ]
then
echo ERROR: LOCAL is not set in the run script
exit 1
elif [ -z "$TRUE" ]
then
echo ERROR: TRUE is not set in the run script
exit 1
elif [ ! -e $TRUE ]
then
echo ERROR: $TRUE [$TRUE] is not an executable
exit 1
fi
ARGS=" $LOCAL $CHECKPW $TRUE"
else
echo ERROR: AUTH=1 but no AUTH_CDB or CHECKPW
exit 1
fi
else
ARGS=""
AUTH_CDB=""
fi
RBLCMD=""
if [ -n "$RBLSMTPD_PROG" ]
then
if [ -n "$RBL_GOOD" ]
then
for name in $RBL_GOOD
do
RBLCMD="$RBLCMD -a $name"
done
fi
if [ -n "$RBL_BAD" ]
then
for name in $RBL_BAD
do
RBLCMD="$RBLCMD -r $name"
done
fi
if [ -n "$RBLCMD" ]
then
RBLCMD="$RBLSMTPD_PROG -t0 $RBLCMD"
fi
fi
if [ "$DOMAINKEYS" = "1" ]
then
if [ -f "$VQ/bin/qmail-dk" ]
then
if [ -n "$QMAILQUEUE" ]
then
export DKQUEUE="$QMAILQUEUE"
fi
export AUTH_UNSET_DKVERIFY=1
export QMAILQUEUE="$VQ/bin/qmail-dk"
if [ -n "$DKVERIFY" ] ; then export DKVERIFY ; fi
if [ -n "$DKSIGN" ] ; then export DKSIGN ; fi
else
echo ERROR: $VQ/bin/qmail-dk not found, cannot use domainkeys
fi
fi
if [ -z "$RECORDIO" ]
then
RECORDIO=""
fi
if [ -z "$GREYLIST" ]
then
GREYLIST=""
fi
for n in SSL \
MAXLOAD \
MAXCONNIP \
MAXCONNC \
DIEMSG \
DIEMSG_MAXLOAD \
DIEMSG_MAXCONNIP \
DIEMSG_MAXCONNC \
JGREYLIST_DIR \
JGREYLIST_NOREV \
JGREYLIST_BY_IP \
JGREYLIST_HOLDTIME \
JGREYLIST_LOG \
JGREYLIST_LOG_PID \
JGREYLIST_LOG_SMTP \
JGREYLIST_TIMEOUT \
JGREYLIST_LIMIT \
SMTPGREETING \
GREETDELAY \
DROP_PRE_GREET \
FORCE_TLS \
DENY_TLS \
MFCHECK \
MAXRCPT \
RELAYREJ \
QMAILSMTPD_LOG_MAIL \
QMAILSMTPD_LOG_RCPT \
QMAILSMTPD_HELP_VERSION \
REQUIRE_AUTH \
ALLOW_INSECURE_AUTH \
AUTH_CDB \
AUTH_SET_MFCHECK \
AUTH_SET_MAXRCPT \
AUTH_SET_DATABYTES \
AUTH_SET_SPFBEHAVIOR \
AUTH_SET_VALIDRCPTTO_LIMIT \
AUTH_SET_VALIDRCPTTO_LOG \
AUTH_SET_SPF_LOG \
AUTH_SET_RELAYREJ \
AUTH_SET_VALIDRCPTTO_CDB \
AUTH_SET_QMAILSMTPD_LOG_MAIL \
AUTH_SET_QMAILSMTPD_LOG_RCPT \
AUTH_SET_QMAILSMTPD_HELP_VERSION \
VALIDRCPTTO_CDB \
VALIDRCPTTO_LIMIT \
VALIDRCPTTO_LOG \
SPFBEHAVIOR \
SPF_LOG \
SPF_BLOCK_PLUS_ALL \
DKVERIFY \
AUTH_SET_DKSIGN \
QMAILQUEUE \
NOP0FCHECK \
SIMSCAN_DEBUG \
SIMSCAN_DEBUG_FILES
do
# note: not 100% sure "eval" works under old-school /bin/sh
eval "if [ -n \"\$$n\" ];then echo \"$n=\\\"\$$n\\\"\";export $n;fi"
done
CMD="$SCMD -vR -l $LOCAL -c $MAX -u $QDUID -g $QDGID $ACMD $IP $PORT"
CMD="$CMD $RBLCMD $GREYLIST $RECORDIO $SMTPD $ARGS"
echo "command-line: exec $CMD 2>&1"
exec $CMD 2>&1
echo ERROR: command did not run correctly
exit 1
кстати, после добавление в /var/qmail/control/locals
домена plague-freebsd.home - почта опять ходить перестает. странно. домен-то локальный.. возможно в том косяк и был.
с причинами отсылки репотров так пока и не разобрался..
в алиасах /var/qmail/alias все по старому: просто plague