home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

m=

Max messages per connection V8.10 and above

The m= delivery agent equate is used to limit the number of envelopes that can be delivered during any single SMTP or LMTP connection.[14] This can prove useful because more and more sites on the Internet have started rejecting envelopes after too many have been sent.

[14] This was originally added because the CC:Mail could accept only one message at a time.

For example, consider a malicious user at your site who wants to advertise to thousands of users at aol.com by sending a single envelope to all of them. By defining this m= delivery agent equate to a value of, say, 25, only the first 25 envelopes would be delivered on the initial connection to aol.com. For the 26th, sendmail would have to reestablish the connection to send the next 25. Thousands of envelopes would require a new connection for each group of 25 envelopes, thus slowing the flow and giving you more time to detect the affront.

The way to add this delivery agent equate to your SMTP delivery agents looks like this:

define(`SMTP_MAILER_MAXMSGS', `25')

This m= delivery agent equate can also be used with the local_lmtp feature (FEATURE(local_lmtp)), which causes mail.local to accept envelopes via LMTP. This can be useful if your machine receives many envelopes from another machine for local delivery. Instead of expecting mail.local to deliver hundreds of envelopes locally during a single run, you can reduce the stress on your machine by limiting the number of envelopes to a comfortable few. Consider defining the following in your .mc configuration file:

define(`LOCAL_MAILER_MAXMSGS', `50')

Here, mail from a site—say, hotmail.com—would be gathered by sendmail until that site finished sending. Then, sendmail would begin delivering all the local addresses via mail.local and LMTP. After the 50th had been delivered, sendmail would exit its run of mail.local and a new run of mail.local would have to begin.

If m= is defined as zero, or is undefined, there is no limit on the number of envelopes. If m= is defined with a negative value, sendmail will issue no error, and will act as if zero were defined.

Modify m= using an mc configuration macro

Using V8 sendmail's mc configuration technique, the maximum number of envelopes allowed per connection can be changed by defining an appropriate macro. Here, for example, is one way to limit the number of envelopes per outbound UUCP connection to 25:

define(`UUCP_MAILER_MAXMSGS', `25')      this must be
MAILER(`uucp')                           before this

See the section describing a particular delivery agent to find an appropriate mc macro with which to redefine the m= for that delivery agent. See Table 20-1, in Section 20.4, for a guide to all delivery agents.

To change the limit for agents that lack a definition, copy an existing delivery agent definition, then modify it as outlined in Section 20.3.2.

    Previous Section Next Section