Skip to content

Instantly share code, notes, and snippets.

@nicksoto
Created February 16, 2016 21:10
Show Gist options
  • Save nicksoto/867fac1afe47824f0af7 to your computer and use it in GitHub Desktop.
Save nicksoto/867fac1afe47824f0af7 to your computer and use it in GitHub Desktop.
# /etc/mail/sendmail.conf
#
# Copyright (c) 2001-2010 Richard Nelson. All Rights Reserved.
# Version: 8.14.4
# Time-stamp: <2014-02-11 13:02:08 cowboy>
#
# Parameter file for sendmail (sourced by /usr/share/sendmail/sendmail)
# Make all changes herein, instead of altering /etc/init.d/sendmail.
#
# After making changes here, you'll need to run /usr/sbin/sendmailconfig
# or /usr/share/sendmail/update_conf to have the changes take effect -
# If you change DAEMON_MODE, QUEUE_MODE, or QUEUE_INTERVAL, you'll also
# need to run /etc/init.d/sendmail restart.
#
# Changes made herein will be kept across upgrades - except for comments!
# Some comment lines have special significance ...
#
# **** **** **** **** DO NOT EDIT THE COMMENTS **** **** **** ****
#
# Supported parameters (and defaults) are listed herein.
#
# Notes:
# * This setup allows sendmail to run in several modes:
# - listener and queue runner..DAEMON_MODE="daemon".QUEUE_MODE="daemon"
# - listener only..............DAEMON_MODE="daemon".QUEUE_MODE="none"
# - queue runner only..........DAEMON_MODE="none"...QUEUE_MODE="daemon"
# - *NOTHING* ?!?..............DAEMON_MODE="none"...QUEUE_MODE="none"
#
# * You can also run the listener from inetd:
# - listener and queue runner..DAEMON_MODE="inetd"..QUEUE_MODE="daemon"
# - listener only..............DAEMON_MODE="inetd"..QUEUE_MODE="none"
#
# * You can also run the queue runner from cron:
# - listener and queue runner..DAEMON_MODE="....."..QUEUE_MODE="cron"
# - queue runner only..........DAEMON_MODE="none"...QUEUE_MODE="cron"
#
# * _PARMS entries herein are shown in precedence order, any later _PARMS
# field will, if applicable, override any previous _PARMS fields.
#
# * Values *MUST* be surrounded with double quotes ("), single quotes
# will *NOT* work !
#
#------------------------------------------------------------------------------
# SMTP Listener Configuration
#
# DAEMON_NETMODE="Static"; Keyword SMTP network mode
# static: Do not monitor any network interfaces for changes
# dynamic: Monitor one or more interfaces for changes
#
DAEMON_NETMODE="Static";
#
# DAEMON_NETIF="eth0"; string SMTP interface(s)
# This parameter defines the network interface(s) that the daemon
# will monitor for status changes (via ppp, dhcp, ifup/down hooks).
#
# NOTES:
# 1) Only list more than one interfaces if they only used for fallback,
# otherwise the daemon will wind up ping-ponging between interfaces.
# 2) Do not use 'lo' unless your daemon only listens on the localhost.
#
DAEMON_NETIF="eth0";
#
# DAEMON_MODE="Daemon"; Keyword SMTP listener
# daemon: Run as standalone daemon
# inetd: Run from inet supervisor (forks for each mail)
# none: No listener (ie, nullclient/smarthost)
#
# NOTE: If you choose "none", mail will build up in the MSP queues
# and you will not receive any mail from external sites.
#
DAEMON_MODE="Daemon";
#
# DAEMON_PARMS=""; String Listener parms
# Any parameters here will be ignored when run from cron.
# Note that {QUEUE,MISC,CRON}_PARMS, if applicable, will override
# anything declared herein.
#
DAEMON_PARMS="";
#
# DAEMON_HOSTSTATS="No"; Boolean Listener stats
# This parameter determines whether or not host stats are collected
# and available for the `hoststat` command to display. There will
# be a (minor) performance hit, as files will be created/updated for each
# sendmail delivery attempt. The files are fixed in size, and small,
# but there can be many of them.
#
DAEMON_HOSTSTATS="No";
#
# DAEMON_MAILSTATS="No"; Boolean Listener stats
# This parameter determines whether or not mailer stats are collected
# and available for the `mailstats` command to display. There will
# be a (minor) performance hit, as this file will be updated for each
# item coming into, or out of, sendmail. The file is fixed in size,
# and small, so there's no need to rotate it.
#
DAEMON_MAILSTATS="No";
#
#------------------------------------------------------------------------------
# SMTP MTA Queue Runner Configuration
#
# QUEUE_MODE="${DAEMON_MODE}"; Keyword SMTP queue runner
# daemon: Run as standalone daemon
# cron: Run from crontab
# none: No queue runner (ie, nullclient/smarthost)
#
QUEUE_MODE="${DAEMON_MODE}";
#
# QUEUE_INTERVAL="10m"; Timespec (p?digits+w|d|h|m|s)
# Interval at which to run the MTA queues. What interval should you use?
# The amount of time that is acceptable before retrying delivery on
# mail that couldn't be delivered in one run, or how long an item can
# set in the queue before having the first delivery attempt done.
#
# NOTE: To use persistent queue-runners use this form: p120m
#
# NOTE: If you leave this field blank, You get *NO* queue runners !!!
#
QUEUE_INTERVAL="10m";
#
# QUEUE_PARMS=""; String queue parameters
# Any parameters here are also used when run from cron.
# Note that MISC_PARMS and CRON_PARMS, if applicable, will override
# anything declared herein.
#
QUEUE_PARMS="";
#
#------------------------------------------------------------------------------
# SMTP - MSP Queue Runner Configuration
#
# MSP_MODE="Cron"; Keyword MSP queue runner mode
# daemon: Run as standalone daemon
# cron: Run from crontab
# none: No queue runner (ie, nullclient/smarthost)
#
# NOTE: If QUEUE_MODE="cron" & MSP_MODE="none", the MSP queue will
# be run as part of the MTA queue running process.
#
MSP_MODE="Cron";
#
# MSP_INTERVAL="20m"; Timespec (digits+w|d|h|m|s)
# Interval at which to run the MSP queues. What interval should you use?
# The amount of time that is acceptable before retrying delivery on
# mail that couldn't be accepted by the MTA, and was therefore left
# in the message submission queue. The MTA shouldn't be down that often
# so this can be larger than QUEUE_INTERVAL.
#
# NOTE: If you leave this field blank, The MSP queue will *NOT* be run !!!
#
MSP_INTERVAL="20m";
#
# MSP_PARMS=""; String queue parameters
# Any parameters here are also used when run from cron.
# Note that MISC_PARMS and CRON_PARMS, if applicable, will override
# anything declared herein.
#
MSP_PARMS="";
#
# MSP_MAILSTATS="${DAEMON_MAILSTATS}"; Boolean Listener stats
# This parameter determines whether or not mailer stats are collected
# and available for the `mailstats` command to display. There will
# be a (minor) performance hit, as this file will be updated for each
# item coming into, or out of, sendmail. The file is fixed in size,
# and small, so there's no need to rotate it.
#
MSP_MAILSTATS="${DAEMON_MAILSTATS}";
#
#------------------------------------------------------------------------------
# Miscellaneous Confguration
#
# MISC_PARMS=""; String miscellaneous parameters
# Miscellaneous parameters - applied to any sendmail invocation.
# Any parameters here are also used when run from cron.
# Applied after {DAEMON,QUEUE}_PARMS, and can therefore override them
# if need be (in which case why did use them?)
# Note that CRON_PARMS, if applicable, will override anything
# declared herein.
#
# Here is where'd you setup and debugging or special parms that you
# want shared betwixt the possibly separate listener/queue-runner
# processes.
#
MISC_PARMS="";
#
#------------------------------------------------------------------------------
# Cron Job Configuration
#
# CRON_MAILTO="root"; String cronjob output
# Recipient of *rare* cronjob output. Some cronjobs will be running
# under user `mail`, so any problems encountered would probably be missed
# so define a user who actually (hopefully) checks email now and again.
#
CRON_MAILTO="root";
#
# CRON_PARMS=""; String cron specific parmeters
# Cron parameters - applied *only* when sendmail queue running is done
# via a cronjob. Applied after QUEUE_PARMS and MISC_PARMS, and can
# therefore override them if need be.
#
CRON_PARMS="";
#
#------------------------------------------------------------------------------
# Other stuff
# LOG_CMDS="No"; Binary command logging flag
# Will cause syslog entries for many of the sendmail related commands
# like runq, mailq, etc - you'll also see cron jobs (if enabled).
#
LOG_CMDS="No";
#
# HANDS_OFF="No"; Binary Do *NOT* touch the configuration
# Set this *ONLY* if you are going to be fully responsible for the entire
# setup of sendmail - the directories, permissions, databases, etc. With
# this variable set to "Yes", nothing will be done for you during updates.
#
# In other words, "The blood be upon your hands" if you set this...
# My ability to help with problems will be greatly reduced !
#
# "Well, a pet peeve of mine is people who directly edit the
# .cf file instead of using the m4 configuration files.
# Don't do it! [laughs] I treat the .cf file as a binary
# file - you should too."
# -- Eric Allman 1999/10/18
# http://www.dotcomeon.com/allman_sendmail_qa.html
#
HANDS_OFF="No";
#
#------------------------------------------------------------------------------
# Queue Aging Configuration
#
# Why would you want to age your queues? On every queue-run interval,
# sendmail will try *every* file in the queue... If a site is down
# for a while, considerable time can be wasted each interval in retrying
# it. The scheme supported allows aging by time, and can move the older
# files to another (less frequently run queue), thereby reducing overal
# system impact - and providing better mail throughput.
#
# Note that this support is completely separate from QUEUE_MODE=cron,
# you can age queues even if you're running QUEUE_MODE=daemon.
#
# There are four parts to the queue aging support, and these parts
# may be repeated, to operate on multiple queues.
#
# 1. Interval at which to age the queues (in minutes).
# What interval should you use? Roughly twice the normal queue
# interval, so that messages are tried twice in each successively
# slower queue.
#
# NOTE: some values just wont work, due to crontab pecularities
# a value of 90 minutes will actually be run at every x:30 !
# Please check /etc/cron.d/sendmail to make sure it is doing what
# you thought it should !
#
# 2. Criteria (optional and defaults to interval). This is the
# specification of which files to move. It defaults moving
# files whose age in the queues exceeds the interval.
# This field, if specified can be very complex - supporting
# aging by just about anything! see qtool(8) for details.
#
# 3. To queue. This is the queue to which files will be moved.
# It may be fully qualified, or relative to /var/spool/mqueue.
#
# 4. From queue. This is the queue from which files will be moved.
# It may be fully qualified, or relative to /var/spool/mqueue.
#
# Samples:
# AGE_DATA="[['25m', '', 'hourly', 'main']]";
# Every 25 minutes, move any file older than 25 minutes from
# /var/spool/mqueue/main to /var/spool/mqueue/hourly
#
# AGE_DATA="[['25m', '', 'hourly', 'main'],\
# ['120m', '', 'daily', 'hourly']]";
# Same as the above, but also move files from the hourly queue
# to the daily queue after 120 minutes in the hourly queue.
#
# AGE_DATA="[['25m',\
# '-e \'$msg{message}[0] == /Deferred: 452 4.2.2 Over quota/\'',\
# 'overquota', 'main']]";
# Every 25 minutes, move all files deferred because of quota
# violations from /var/spool/mqueue/main to
# /var/spool/mqueue/overquota where they can be processed on
# a different interval, or by some other means.
#
# If the above samples suggest Perl arrays, well, they are...
#
# AGE_DATA=""; Perl array Queue aging data
#
AGE_DATA="";
#
#------------------------------------------------------------------------------
# Dependant variables (set according to other variables)
#
#
#------------------------------------------------------------------------------
# Hidden variables (the blood be upon your hands)
#
DAEMON_RUNASUSER="No";
#
#------------------------------------------------------------------------------
# Deprecated variables (kept for reference)
#
DAEMON_STATS="${DAEMON_MAILSTATS}";
MSP_STATS="${MSP_MAILSTATS}";
#
#------------------------------------------------------------------------------
# Unknown variables (kept for reference)
#
#------------------------------------------------------------------------------
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment