#!/bin/sh # # $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $ # $FreeBSD: src/etc/rc.d/sendmail,v 1.7 2002/10/12 10:31:31 schweikh Exp $ # $DragonFly: src/etc/rc.d/sendmail,v 1.4 2005/11/19 21:47:32 swildner Exp $ # # PROVIDE: mail # REQUIRE: LOGIN # we make mail start late, so that things like .forward's are not # processed until the system is fully operational # XXX - Get together with sendmail mantainer to figure out how to # better handle SENDMAIL_ENABLE and 3rd party MTAs. # . /etc/rc.subr name="sendmail" rcvar=`set_rcvar` required_files="/etc/mail/${name}.cf" command=${sendmail_program:-/usr/sbin/sendmail} pidfile=${sendmail_pidfile:-/var/run/sendmail.pid} load_rc_config $name case ${sendmail_enable} in [Nn][Oo][Nn][Ee]) sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" ;; esac sendmail_precmd() { # Die if there's pre-8.10 custom configuration file. This check is # mandatory for smooth upgrade. See NetBSD PR 10100 for details. # if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then warn \ "${name} was not started; you have multiple copies of sendmail.cf." return 1 fi fi # check modifications on /etc/mail/aliases if [ -f "/etc/mail/aliases.db" ]; then if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then echo \ "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating" /usr/bin/newaliases fi else echo \ "${name}: /etc/mail/aliases.db not present, generating" /usr/bin/newaliases fi # check couple of common db files, too for f in genericstable virtusertable domaintable mailertable; do if [ -r "/etc/mail/$f" -a \ "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then echo \ "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating" /usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f fi done } run_rc_command "$1" required_files= if ! checkyesno sendmail_enable; then name="sendmail_submit" rcvar=`set_rcvar` start_cmd="${command} ${sendmail_submit_flags}" run_rc_command "$1" fi if ! checkyesno sendmail_outbound_enable; then name="sendmail_outbound" rcvar=`set_rcvar` start_cmd="${command} ${sendmail_outbound_flags}" run_rc_command "$1" fi name="sendmail_clientmqueue" rcvar="sendmail_msp_queue_enable" start_cmd="${command} ${sendmail_msp_queue_flags}" pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}" required_files="/etc/mail/submit.cf" run_rc_command "$1"