Items markedwere added on or after 11/12/98.
06/19/97 - Updated with 5.0 SP1 information.
07/17/97 - Updated dequeue.exe (Intel 108Kb) - Version
1.02 fixes a bug with the "-p" parameter.
09/03/97 - Updated dequeue.exe (Intel 108Kb) - Version
1.03 increases a too-short timeout value.
01/04/98 - Updated with further Exchange 5.5 information.
03/09/98 - Updated with further Mailer X information.
10/06/98 - Updated with further Mailer X information
The sendmail program in its many variants is by far the most popular mailer in use at ISP sites. The latest versions of sendmail (version 8.8.x and above) implement the RFC 1985 ETRN command for initiating queued mail transmission. Most earlier versions of sendmail will initiate a dequeue of stored mail when they are executed with the parameter "-qR <yourdomain.com>" (i.e. /etc/sendmail -qR swinc.com). The trick then becomes figuring out how to execute this command when the Exchange server makes a connection to the ISP. There are several methods to accomplish this with varying logistical impacts to you and the ISP:
Description | RFC 1985 describes an extention to the SMTP protocol. The ETRN command is defined to cause mail for a particualr domain(s) to dequeue. |
Usage | ETRN [@]domain |
Parameters | |
@ | Specifies that the domain and all subdomains should be dequeued |
domain | Specifies the domain to dequeue |
Requirements | ISP must have installed sendmail version 8.8.x or higher. Since ETRN is simply another token that the SMTP protocol can pass, some method must be designed to connect to the host on the SMTP port (TCP 25), send the ETRN command, then quit. ETRN is supported natively in Exchange 5.0 SP1 and later. There is a screenshot
later on this page showing the config dialog. For earlier versions of Exchange and special cases, we have written a very simple NT command line utility to do this. You can download dequeue.exe (Intel 108Kb, Alpha 220Kb). The parameters are described in the program help - accessible by running "dequeue -?". |
Example | dequeue -m oak.zilker.net -d swinc.com -q |
Description | Runs commands on remote hosts running the RSH service. |
Usage | RSH host [-l username] [-n] command |
Parameters | |
host | Specifies the remote host on which to run command. |
-l username | Specifies the user name to use on the remote host. If omitted, the logged on user name is used. |
-n | Redirects the input of RSH to NULL. |
command | Specifies the command to run. |
Requirements | ISP must support execution of user commands on the mail server User account on the ISP system must contain .rhosts file to allow execution. Or, the ISP must have a /etc/hosts.equiv file configured to allow you to execute "r" commands. |
Example | RSH oak.zilker.net -l awebb -n "/usr/lib/sendmail -qRswinc.com" |
Description | Runs commands on remote hosts running the REXEC service. Rexec authenticates the user name on the remote host before executing the specified command. |
Usage | REXEC host [-l username] [-n] command |
Parameters | |
host | Specifies the remote host on which to run command. |
-l username | Specifies the user name to use on the remote host. |
-n | Redirects the input of REXEC to NULL. |
command | Specifies the command to run. |
Requirements | ISP must support execution of user commands on the mail server User account on the ISP system must contain .rhosts file to allow execution. Or, the ISP must have a /etc/hosts.equiv file configured to allow you to execute "r" commands. |
Example | REXEC oak.zilker.net -l awebb -n "/usr/lib/sendmail -qRswinc.com" |
Description | Displays information about a user on a specified system running the Finger service. Output varies based on the remote system |
Usage | FINGER [-l] [user]@host [...] |
Parameters | |
-l | Displays information in long list format. |
domain | Specifies the domain you want to dequeue mail for. E.G. swinc.com |
@host | Specifies the server on the remote system whose users you want information about. |
Requirements | ISP must have modified their finger daemon to understand the domain information and launch the necessary sendmail command. http://www.wizzy.com/wizzy/mail.html is a good reference on how to set this up. |
Example | finger swinc.com@oak.zilker.net |
Description | This is a file on the ISP mail host that can be used to redirect the delivery of mail for a specific account. | ||
Usage |
|
||
Parameters | |||
domain | Specifies the domain you want to dequeue mail for. E.G. swinc.com | ||
path | Specifies the path to the sendmail command on the ISP system | ||
Requirements | ISP must have modified their /etc/aliases file to execute the sendmail command when mail is received for <domain>@ISP.com. | ||
Example | /etc/aliases file contains:
Exchange server uses blat or other utility to send a mail message to swinc.com@oak.zilker.net |
Description | Procmail is a powerful mail processor that runs on your ISP's host and can be used to process your mail messages either as they arrive or after they are in a mail folder. |
Usage | |
Parameters | <none> |
Requirements | ISP must have installed and configured procmail. The latest build can be ftp'd from There is a procmail faq available . This provides detailed instructions on how to use the product - too lengthy to repeat here. The .procmailrc file is used to define the mail processing rules. You could use a subject of "Sendmail -qRdomain.com" to trigger the sendmail command. You must have a separately accessible mail account on the ISP system. For example, I have an account awebb@myisp.net that can receive mail. Mail to here is first examined by procmail for specific subject items, then either acted upon, or forwarded to awebb@mycompany.com. |
Example | An example of a .procmailrc file:
I would have Exchange server use blat or some similar utility to send a mail message to awebb@myisp.net with a subject of "Sendmail -qRswinc.com". |
Software.com publishes an SMTP mailer product called Post.Office that runs on Unix and Windows NT. Recent improvements to the product have added an option to make this a workable solution for Exchange dial-up also:
Description | post.office version 1.9.3 and later implements the QSND command to cause mail for a particualr domain(s) to dequeue. |
Usage | QSND domain |
Parameters | |
domain | Specifies the domain to dequeue |
Requirements | ISP must have installed post.office version 1.9.3 or higher. Since QSND is simply another token that the SMTP protocol can pass, some method must be designed to connect to the host on the SMTP port (TCP 25), send the QSND command, then quit. We have written a very simple NT command line utility to do this. You can download dequeue.exe (Intel 108Kb, Alpha 220Kb). The parameters are described in the program help - accessible by running "dequeue -?". [yes - this is the same utility used for sendmail. It works with both protocols!] |
Example | dequeue -m oak.zilker.net -d swinc.com -q |
Netscape Mail Server 2.0 is based on Software.Com's Post.Office product. As with
Post.Office, it supports the QSND method:
(Netscape Mail Server 3.0 is a different beast and appears to support ETRN)
Description | Netscape Mail Server version 2.0 and later implements the QSND command to cause mail for a particualr domain(s) to dequeue. |
Usage | QSND domain |
Parameters | |
domain | Specifies the domain to dequeue |
Requirements | ISP must have installed Netscape Mail Server version 2.2 or higher. Since QSND is simply another token that the SMTP protocol can pass, some method must be designed to connect to the host on the SMTP port (TCP 25), send the QSND command, then quit. We have written a very simple NT command line utility to do this. You can download dequeue.exe (Intel 108Kb, Alpha 220Kb). The parameters are described in the program help - accessible by running "dequeue -?". [yes - this is the same utility used for sendmail. It works with both protocols!] |
Example | dequeue -m oak.zilker.net -d swinc.com -q |
This is becoming an increasingly popular option.. Recent improvements to the product have added an option to make this a workable solution for Exchange dial-up also. With Exchange 5.0 SP1, Microsoft has added ETRN functionality to the IMS:
Description | Microsoft Exchange version 5.0 SP1 and later implements the ETRN command to cause mail for a particualr domain(s) to dequeue. |
Usage | ETRN domain |
Parameters | |
domain | Specifies the domain to dequeue |
Requirements | ISP must have installed Microsoft Exchange version 5.0 SP1 or higher. Since ETRN is simply another token that the SMTP protocol can pass, some method must be designed to connect to the host on the SMTP port (TCP 25), send the ETRN command, then quit. 1. If you have Exchange 5.0 SP1, the ETRN functionality is built into the IMS. It is configured through the "Mail Retrieval" button on the "Dial-Up Connections" tab of the IMS Properties page. 2. If you do not have Exchange 5.0 SP1, we have written a very simple NT command line utility to do this. You can download dequeue.exe (Intel 108Kb, Alpha 220Kb). The parameters are described in the program help - accessible by running "dequeue -?" 3. If you are using a Dial-on-Demand router, your options are more limited. With Exchange 5.5, you can use the AlwaysUseETRN registry key, but only for the primary domain (from the Site Addressing tab) of the server. If you have multiple domains, use dequeue.exe, |
Example 1 | |
Example 2 | dequeue -m oak.zilker.net -d swinc.com -q |
Description | Current versions of NTMail provide a program called mail.exe which can send command line email to a robot account to initiate dequeuing.. |
Usage | mail "-pfilename,to-address,mailserver,subject,from-address" |
Parameters | |
-p filename | Specifies any file to be mailed. (include path c:\.. etc) |
to-address | The email address of the robot account. |
mailserver | The NTMail server DNS name |
subject | Can be any subject (it is ignored in this case) |
from-address | Your valid SMTP address. |
Requirements | I'm going to defer on this as the explaination is long. Dean Richardson at Left
Coast Systems has put together a page on this at: http://www.left-coast.net/ntmail/routing.htm |
Example |
Mailer | Version Req'd | Method | Reference |
Zmailer | 2.99.42 | ETRN | ftp://ftp.funet.fi/pub/unix/mail/zmailer |
Microsoft Exchange | 5.0 SP1 | ETRN | |
Post.Office | 1.9.3 | QSND | http://www.software.com |
Netscape | 2.0 | QSND | (Based on Post.Office) |
Netscape | 3.0 | ETRN | |
sendmail | 8.8.x | ETRN | |
sendmail | 8.7.x or lower | sendmail -qRdomain | |
Eudora IMS | 1.1 | ETRN | |
IMail (IPSwitch) | 4.01 | ETRN | |
qmail | custom via "maildir2smtp" (consult your ISP) |
http://www.qmail.org/ | |
EXIM | 1.73 | ETRN | http://www.exim.org/ |
Microsoft CIS | 2.0 | ETRN / ATURN | |
NTMail | via "robot" account and mail.exe program |
http://www.left-coast.net/ntmail/routing.htm | |
SLMail | 3.1 | ETRN |
Other situations are more difficult to predict. For alternative mailers that implement RFC 1985, see the ETRN option in the sendmail section. For other mailers, your ISP may have an answer. If they do not have one apparent, we would be glad to contract with you to get the problem solved. Or, perhaps, an alternate ISP would be a suitable solution.
If you have questions about specific products or ISP's and would like to discuss the project, send us a comment. Also, if you have a solution to add to this page for sendmail, post.office, or mailer X, I would be happy to include it here with appropriate credit given.Suggestions for additions or modifications to the dequeue.exe program are welcome too.
I've found a good link that discusses an optional sendmail 8.6.x configuration to handle the queued mail a bit more elegantly. http://www.wizzy.com/wizzy/mail.html describes how to set up batch-smtp queues for particular domains. The description is based on the "finger" method of dequeueing, but you could just as well run a separate sendmail process with different retry intervals on each queue. It would need to listen on a different port, but this is workable since we've added a "-p" option to set the connection port to dequeue.exe. More information on sendmail can be found at http://www.sendmail.org/ and in the comp.sys.sendmail newsgroup.
How do I configure sendmail to queue mail? Harker Systems has a great reference on how to configure sendmail 8.8.x for dial-on demand operation. Including a pre-made m4 file to build into your sendmail config. http://www.harker.com/sendmail/smtpdemanddial.html
I pinched this text from the newsgroups and neglected to capture the kind soul's name who wrote it. I'll have to attribute it to anonymous.
For quite a while ZMailer's scheduler has operated in such a way that if there is a new message going to Channel-C/Host-H, and the system has resources available to run a new (or recycled) transport agent, then appearance of the new job will run ALL accumulated jobs to that particular target at the same time.
Defining parameters:
interval=1h
retries="12"
would make sure that any such thread be retried only every 12 hours, although (as I said above) appearance of a new message will also cause run attempt.What ever, it will use up only one transport agent, which operates independent of all of the other message flows going around. That is, it will not cause significant slowdown to the system, not even when there are thousands of messages going to that one thread... (All this assuming you don't have too many of such targets with huge queues in your system -- like several dozens of them ...)
With 2.99.49p5 there is configuration flag "queueonly", which just accumulates the target thread(s), but will never automatically start the queueing. Instead, the target Host-H MUST be triggered by explicite "ETRN Host-H" command thru the smtpserver.
This will, of course run all channels with Host-H, however I thought that to be a minor nuisance instead of demanding things like "it must be in 'smtp' channel" -- because I think it will be easiest to have explicite 'route' entry telling something like:
target.host smtp-etrn!
and associated scheduler.conf target:
smtp-etrn/*
...
queueonly
command="smtp -c smtp-etrn ..."For that route example the necessary ETRN is:
ETRN target.host
Version | Date | Comments |
1.00 | 12/96 | Initial release |
1.00-Alpha | 3/28/97 | Added Alpha compiled version |
1.01-Intel | 7/9/97 | Added "-p" parameter to allow optional port specification |
1.02-Intel | 7/17/97 | Fixed a bug with the "-p" parameter. Carless variable instantiation resulted in a non-null value when "-p" was not specified. |
1.03-Intel | 9/3/97 | Extended the connection to mailer-response timeout from 30 to 120 seconds. |
dequeue usage:
dequeue [-h] [-q] [-v] [-p port] [-m] <mail host> [-d] <domain>
options
-h Display help and exit
-q Quiet
-v Verbose
-p Optional port to use. ([SMTP|25] is std)
-m Optional option tag for mail host
-d Optional option tag for domain
<mail host> - identifies the mail host that has the spooled mail
<domain> - identifies the domain to despool from <host>