xref: /dragonfly/etc/rc.d/sendmail (revision 92fc8b5c)
1#!/bin/sh
2#
3# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
4# $FreeBSD: src/etc/rc.d/sendmail,v 1.7 2002/10/12 10:31:31 schweikh Exp $
5# $DragonFly: src/etc/rc.d/sendmail,v 1.4 2005/11/19 21:47:32 swildner Exp $
6#
7
8# PROVIDE: mail
9# REQUIRE: LOGIN
10#	we make mail start late, so that things like .forward's are not
11#	processed until the system is fully operational
12
13# XXX - Get together with sendmail mantainer to figure out how to
14#	better handle SENDMAIL_ENABLE and 3rd party MTAs.
15#
16. /etc/rc.subr
17
18name="sendmail"
19rcvar=`set_rcvar`
20required_files="/etc/mail/${name}.cf"
21start_precmd="sendmail_precmd"
22command=${sendmail_program:-/usr/sbin/sendmail}
23pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
24load_rc_config $name
25case ${sendmail_enable} in
26[Nn][Oo][Nn][Ee])
27	sendmail_enable="NO"
28	sendmail_submit_enable="NO"
29	sendmail_outbound_enable="NO"
30	sendmail_msp_queue_enable="NO"
31	;;
32esac
33
34sendmail_precmd()
35{
36	# Die if there's pre-8.10 custom configuration file.  This check is
37	# mandatory for smooth upgrade.  See NetBSD PR 10100 for details.
38	#
39	if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
40		if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
41			warn \
42    "${name} was not started; you have multiple copies of sendmail.cf."
43			return 1
44		fi
45	fi
46
47	# check modifications on /etc/mail/aliases
48	if checkyesno sendmail_rebuild_aliases; then
49		if [ -f "/etc/mail/aliases.db" ]; then
50			if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
51				echo \
52	    "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
53				/usr/bin/newaliases
54			fi
55		else
56			echo \
57	    "${name}: /etc/mail/aliases.db not present, generating"
58				/usr/bin/newaliases
59		fi
60	fi
61
62	# check couple of common db files, too
63	for f in genericstable virtusertable domaintable mailertable; do
64		if [ -r "/etc/mail/$f" -a \
65		    "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
66			echo \
67    "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
68			/usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
69		fi
70	done
71}
72
73run_rc_command "$1"
74
75required_files=
76if ! checkyesno sendmail_enable; then
77	name="sendmail_submit"
78	rcvar=`set_rcvar`
79	start_cmd="${command} ${sendmail_submit_flags}"
80	run_rc_command "$1"
81fi
82if ! checkyesno sendmail_outbound_enable; then
83	name="sendmail_outbound"
84	rcvar=`set_rcvar`
85	start_cmd="${command} ${sendmail_outbound_flags}"
86	run_rc_command "$1"
87fi
88name="sendmail_clientmqueue"
89rcvar="sendmail_msp_queue_enable"
90start_cmd="${command} ${sendmail_msp_queue_flags}"
91pidfile="${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}"
92required_files="/etc/mail/submit.cf"
93run_rc_command "$1"
94