Linux – Kana Solution https://kanasolution.com Official website for Kana Solution Mon, 10 Jan 2011 19:59:26 +0000 en-US hourly 1 Intentionally Throttling Messages Delivery https://kanasolution.com/2011/01/intentionally-throttling-messages-delivery/ https://kanasolution.com/2011/01/intentionally-throttling-messages-delivery/#comments Wed, 05 Jan 2011 15:33:49 +0000 http://kanasolution.com/2011/01/intentionally-throttling-messages-delivery/ I volunteered  to maintain several mailing lists for several community organizations. They are small mailing lists with members not more than 200 each, but on hot topics, it can generate a lot of emails sent to the email server.

The mailing list uses Mailman. It sends the message to the email server on the same computer. The email server uses Sendmail, which is set up to send the messages to smart host, which is my ISP email server. The computer itself is using Fedora.

To minimize the unintentional large amount of email being sent by its service subscribers, my ISP limits number of emails allowed to deliver within a period of time. Having mailing list runs in this situation without some adjustments certainly will make my account being flagged by my ISP. So, here is the solution that I am using right now.

Sendmail Configuration

First, we need to make sure that Sendmail will only send certain amount of email within a period of time. This can be done by making:

  1. Sendmail processes emails in queue every certain time.
  2. Sendmail only processes certain amount of email when processing the queue.

The first one is already set in Fedora default installation. If you want to make interval adjustment, you can edit the startup configuration for Sendmail, which is in my system located at /etc/sysconfig/sendmail. My configuration is:

DAEMON=yes
QUEUE=5m

For the second one, you need to put the settings inside sendmail.cf file (actually you can specify them from command line too). You can edit your m4 file and then create new sendmail.cf file from your m4 file. The settings that you need to put are:

define(`confMAX_QUEUE_RUN_SIZE', `30')dnl
define(`confDELIVERY_MODE', `queueonly')dnl

MAX_QUEUE_RUN_SIZE is to make sure the maximum number of messages to be processed during a single queue run.

DELIVERY_MODE is to make sure that Sendmail uses queue delivery mode.

With this configuration, Sendmail only sends 30 messages in its queue every 5 minutes.

Mailman Configuration

After we setup Sendmail, the next step is to make sure that we have the number of messages being sent by Mailman accurately.

In default configuration, Mailman delivers messages to the email server in batches. This means there are many recipients in each message. The email server than checks the message and for multiple recipients, send each recipient a copy of the message.

If we are using this configuration, Sendmail will see viewer messages in queue than actually needs to be delivered to the smart host. As result, My ISP email server may see I send more messages than the allowed limit.

The solution is to make sure that Mailman generates separate message for each recipient. This will make the number of message appears in Sendmail’s queue more accurate.

To do this, you need to go to Non-digest options in Mailman’s administration page and make sure that Mailman personalizes each non-digest delivery (see figure below).

mailman-personalized-config

Note: You may need to set the MAX_QUEUE_RUN_SIZE a little bit lower than the limit allowed by the smart host to anticipate when someone inside your system send email to multiple recipients.

]]>
https://kanasolution.com/2011/01/intentionally-throttling-messages-delivery/feed/ 1