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


Previous Section Next Section

DeliverByMin

Set default DELIVERBY interval V8.12 and later

RFC2852 defines a way to ensure that a message is delivered or bounced within a defined maximum window of time. This method is known as the DELIVERBY SMTP extension and is used like the following (shown in bold):

220 your.host.domain ESMTP Sendmail 8.12.7/8.12.7; Fri, 13 Dec 2002 10:09:06 -0600 
(MDT)
EHLO another.host.domain
250-your.host.domain Hello another.host.domain [123.45.67.8], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY                                          note 
250 HELP
MAIL From:<bob@another.host.domain> BY=600;R           note 
250 2.1.0 <bob@another.host.domain>... Sender ok

Here, your site tells the connecting site that it supports the DELIVERBY SMTP extension by displaying the 250-DELIVERBY line. Then the other site recognizes that support and says that it wants the message delivered within 600 seconds by including the BY=600;R as part of the envelope sender MAIL FROM: command.

The ;R tells your server to not relay this message to a site that does not support this extension. The only possibility, other than ;R, is a ;N, which means the message can be relayed to another site, regardless of whether that other site supports this extension.

It is possible to run software or a configuration at your site in such a way that mail cannot be immediately delivered. If you screen all messages for viruses, for example, or if you queue all inbound mail and deliver from the queue, you will likely not be able to guarantee immediate delivery. In such instances, you are required to advertise the size of that delay. You advertise such delays by adding an argument to the SMTP DELIVERBY command:

250-DELIVERBY 300

Here, you advertise that you cannot guarantee delivery in less than 300 seconds (5 minutes), perhaps because you queue all inbound mail and process the queue only once each five minutes. If a message arrives with a requirement that it be delivered within 250 seconds:

MAIL From: <bob@another.host.domain> BY=250;R

it would bounce because your site said it could not honor such a narrow window of delivery time.

The way your advertise your minimum delivery time is with the DeliverByMin option, which is declared like this:

O DeliverByMin=mintime                   configuration file (V8.12 and later) 
-ODeliverByMin=mintime                   command line (V8.12 and later) 
define(`confDELIVER_BY_MIN',`mintime')   mc configuration (V8.12 and later) 

Here, mintime is of type time. If mintime is negative, the DELIVERBY extension is not offered. If mintime is zero (the default), the DELIVERBY SMTP extension is offered, but no minimum is stated. If mintime is greater than zero, the DELIVERBY SMTP extension is offered and your minimum is stated. Note that no command-line switches are available to cause sendmail to include a BY= in the MAIL FROM: command.

Whenever mail is propagated with a BY=, the receiving site will subtract the time it takes to deliver or relay the message from the value specified by the BY=. If the difference is negative, the message is bounced. If the difference is positive, the new (smaller) value is passed to the next site using a new BY= showing that new value. The process continues until the message is delivered, or until a site in the chain requires more than the BY= interval to deliver or relay the message, at which point the message is bounced.

The DeliveryByMin option is not safe. If specified from the command line, it can cause sendmail to relinquish its special privileges.

    Previous Section Next Section