Thursday, February 24, 2011
In reality Sendmail is very easy to configure and flexible. Sendmail growth continuous to evolve as the crowd needs continue on demanding. Have you ever heard of Sendmail Engineer job position that only works with Sendmail setup and configuration? Just imagine what kind of sendmail job this sendmail engineer is usually doing.
Here are a few sendmail configuration tweaks that you can play with on queueing up incoming and new SMTP connection based on server’s current load average value.
Sendmail Directive Configurations
Most sendmail directives does not come with its default sendmail rpm installation. Here are a few of sendmail directives that you could manage to control, delay and queue incoming SMTP connections based on current server load average.
Sendmail directive: confQUEUE_LA
One trick you can play along with sendmail configuration setup is on how you could tweak sendmail to queue incoming mails and put on hold, rather than queue them up immediately for delivery if a certain sendmail rules is met. The below sendmail directive considers current server’s load average value as a basis to put new and incoming emails on hold.
If the server’s load average value increases to or more than 10, then sendmail is then instructed to put all incoming emails on queue for hold, instead of delivering all new incoming emails for delivery. The sendmail directive is active until the server’s load average value decreases down below 10.
Sendmail directive: confREFUSE_LA
Now, if you want to tweak sendmail to stop accepting any new incoming SMTP connections and mails based on server load average value, you could make use of the below sendmail configuration directive as shown below
The above instructs sendmail to completely stop accepting new and rejecting incoming SMTP connections if and only the current server load average reaches and stays 15 or above.
Sendmail directive: confDELAY_LA
Now, to throttle SMTP connections, we can make use of the below sendmail directive
The server load average value of 5 is a sendmail directive trigger point at which sendmail is instructed to sleep for one second on most SMTP commands and before accepting SMTP connections again. 0 means no limit.
When modifying sendmail configuration file /etc/mail/sendmail.mc, always remember to restart sendmail service to take effect the new changes from sendmail directives.
To recompile sendmail.mc sendmail configuration file
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
To restart sendmail service
# service sendmail restart
To monitor sendmail logs
# tail -f /var/log/maillog
To monitor queued mails
There are a lot more sendmail directives and M4 sendmail variables that are just waiting to be configured and changed.