Appendix D
Route Slips
The concept of a "route slip" has been present in MDaemon since the beginning but has never been documented. Typically, a message file that is waiting in a queue contains within itself all the information that is needed to get the message delivered to the proper location. There are headers stored within the .MSG file (such as the X-MDaemon-Deliver-To header) which provide MDaemon with instructions as to where and to whom the message should be delivered. Sometimes however it is necessary or useful to override this information and provide specific alternatives to where and to whom an .MSG file must be sent. The route slip provides just such a mechanism. A route slip is a file which provides MDaemon with very specific instructions as to where and to whom a message file should be sent. If a route slip is present for a particular message file then the settings within the route slip - and not those within the .MSG file itself - control where and to whom the message is sent.
Route slips end with the extension .RTE. For example, if a message file waiting to be sent is called MD0000.MSG then the corresponding route slip file for this message will be called MD0000.RTE and must be located in the same directory (mail queue) as the message file.
The format of a route slip is as follows:
[RemoteHost]DeliverTo=remote-domain.com
This section of a route slip provides MDaemon with the server to which the corresponding .MSG file is to be sent. MDaemon will always attempt a direct connection to this host attempting to route the message in as short a time as possible. Only one host may be specified.
[RemoteHost]
IgnoreRcptErrors=Yes (or No)
It is possible to specify an unlimited number of recipients of the .MSG file being sent. Sometimes hosts might refuse a particular address to which you are attempting to send a copy of the message. Ordinarily under SMTP regulations the session should be aborted. This switch will allow MDaemon to proceed to the next recipient in the list without aborting the session completely.
[Port]
Port=xxx
This switch specifies the port that the TCP/IP connection and delivery attempt should be made on. 25 is the default for SMTP email.
[LocalRcpts]
Rcpt0=address@my-domain.com
Rcpt1=other-address@my-domain.com
Rcpt2=yet-another-address@my-domain.com
[RemoteRcpts]
Rcpt0=address@foreign-domain.com
Rcpt1=other-address@foreign-domain.com
Rcpt2=yet-another-address@foreign-domain.com
These sections of the route slip allow you to specify any number of local and remote recipients who should receive a copy of the associated .MSG file. Local and remote recipient addresses must be kept separate and placed in their corresponding [LocalRcpts] and [RemoteRcpts] sections.
Route slips provide a good mechanism for delivering or redirecting email but they are not generally necessary. One use that MDaemon makes of route slips is in the case of "routed" mailing list mail. When you have a mailing list that is set to route a single copy of the list message to some remote host a route slip is employed to accomplish this. It is a very efficient method of mail delivery when you have bulk addresses to deliver mail to since only a single copy of the message is required while any number of recipients of the message can be specified. Not all remote hosts allow this sort of routing to occur however. Since it is ultimately they who will have to deliver a copy of the message file to each address some hosts place an upper limit on the number of recipients they will allow you to specify.
