aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mailscanner-devel/files/mta.in
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mailscanner-devel/files/mta.in')
-rw-r--r--mail/mailscanner-devel/files/mta.in151
1 files changed, 151 insertions, 0 deletions
diff --git a/mail/mailscanner-devel/files/mta.in b/mail/mailscanner-devel/files/mta.in
new file mode 100644
index 00000000000..fb3f433cbff
--- /dev/null
+++ b/mail/mailscanner-devel/files/mta.in
@@ -0,0 +1,151 @@
+#!/bin/sh
+#
+# mta.sh - start multiple MTA instances, e.g. for MailScanner
+
+# PROVIDE: mta
+# REQUIRE: LOGIN cleanvar
+# BEFORE:
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable mta at boot-up time:
+# mta_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable mta
+# mta_type (str): Type of MTA (sendmail, exim, unknown), defaults to "sendmail"
+# mta_profiles (string): Undefined by default. Define your profiles here.
+# mta_flags (str): Set to "" by default.
+# Extra flags passed to start command.
+# mta_program (str): Path to program, defaults depending on $mta_type
+# either to "/usr/sbin/sendmail" or "/usr/local/sbin/exim"
+# mta_configfile (str): Config file, defaults depending on $mta_type either
+# to "/etc/mail/sendmail.cf" or "/usr/local/etc/exim/configure"
+# mta_pidfile (str): PID file, defaults depending on $mta_type either
+# to "/var/run/sendmail.pid" or "/var/run/exim.pid"
+#
+#
+# ATTENTION: All of the above entries are necessary in order for mta.sh to work correctly!
+#
+
+#
+# Examples:
+#
+# Exim, 2 instances (for MailScanner):
+#
+# mta_enable="YES"
+# mta_type="exim"
+# mta_profiles="incoming outgoing"
+# mta_incoming_configfile="/usr/local/etc/exim/configure.in"
+# mta_incoming_flags="-bd"
+# mta_incoming_pidfile="/var/run/exim_in.pid"
+# mta_outgoing_configfile="/usr/local/etc/exim/configure.out"
+# mta_outgoing_flags="-q15m"
+# mta_outgoing_pidfile="/var/run/exim_out.pid"
+#
+# Sendmail, 3 instances (for MailScanner):
+#
+# mta_enable="YES"
+# mta_type="sendmail"
+# mta_profiles="incoming outgoing submitqueue"
+# mta_incoming_flags="-L sm-mta-in -bd -OPrivacyOptions=noetrn -OQueueDirectory=/var/spool/mqueue.in -ODeliveryMode=queueonly"
+# mta_incoming_pidfile="/var/run/sendmail_in.pid"
+# mta_incoming_configfile="/etc/mail/sendmail.cf"
+# mta_outgoing_flags="-L sm-mta-out -q15m"
+# mta_outgoing_pidfile="/var/run/sendmail_out.pid"
+# mta_outgoing_configfile="/etc/mail/sendmail.cf"
+# mta_submitqueue_flags="-L sm-msp-queue -Ac -q15m"
+# mta_submitqueue_pidfile="/var/spool/clientmqueue/sm-client.pid"
+# mta_submitqueue_configfile="/etc/mail/submit.cf"
+
+PATH=$PATH:/sbin:/usr/sbin; export PATH
+
+. %%RC_SUBR%%
+
+name="mta"
+rcvar=`set_rcvar`
+
+_mta_rc_script="%%PREFIX%%/etc/rc.d/mta%%RC_SUBR_SUFFIX%%"
+
+load_rc_config $name
+
+: ${mta_enable="NO"}
+: ${mta_type="sendmail"}
+: ${mta_flags=""}
+
+case "${mta_type}" in
+
+ sendmail)
+ _mta_program="/usr/sbin/sendmail"
+ _mta_configfile="/etc/mail/sendmail.cf"
+ _mta_pidfile="/var/run/sendmail.pid"
+ ;;
+
+ exim)
+ _mta_program="/usr/local/sbin/exim"
+ _mta_configfile="/usr/local/etc/exim/configure"
+ _mta_pidfile="/var/run/exim.pid"
+ ;;
+esac
+
+: ${mta_program=${_mta_program}}
+: ${mta_configfile=${_mta_configfile}}
+: ${mta_pidfile=${_mta_pidfile}}
+
+# support SIGHUP to reparse configuration file
+extra_commands="reload"
+
+# command and arguments
+command="${mta_program}"
+
+if [ -n "${2}" -o -n "$profile" ]; then
+ profile=${profile-$2}
+ export profile
+ if [ "x${mta_profiles}" != "x" ]; then
+ eval mta_configfile=\${mta_${profile}_configfile}
+ [ "x${mta_configfile}" = "x" ] && {
+ echo "You must define a configuration file (mta_${profile}_configfile)"
+ exit 1
+ }
+ eval mta_enable=\${mta_${profile}_enable:-YES}
+ eval mta_flags=\${mta_${profile}_flags:-${mta_flags}}
+ eval mta_configfile=\${mta_${profile}_configfile:-${mta_configfile}}
+ eval mta_pidfile=\${mta_${profile}_pidfile:-${mta_pidfile}}
+ pidfile="${_pidprefix}.${profile}.pid"
+ else
+ echo "$_mta_rc_script: extra argument ignored"
+ fi
+else
+ if [ "x${mta_profiles}" != "x" ]; then
+ for profile in ${mta_profiles}; do
+ echo "===> mta profile: ${profile}"
+ $_mta_rc_script $1 $profile
+ retcode=$?
+ if [ "$?" -ne 0 ]; then
+ failed="${profile} ({$retcode}) ${failed}"
+ else
+ success="${profile} ${success}"
+ fi
+ done
+ exit 0
+ fi
+fi
+
+
+pidfile=${mta_pidfile}
+required_files="${mta_configfile}"
+
+# select correct command arguments
+case "${mta_type}" in
+
+ sendmail)
+ command_args="-C'${mta_configfile}' -OPidFile='${pidfile}'"
+ ;;
+
+ exim)
+ command_args="-C '${mta_configfile}' -oP '${pidfile}'"
+ ;;
+
+ *)
+ command_args=""
+ ;;
+esac
+run_rc_command "$1"