« robots.txt and spidering. | Main | qmail error resolution: sorry, although i'm listed as a best-preference mx for that host, it isn't in my control/locals file. »

qmail: 7 day mail queues? too long.

i've been taking a proactive stance in checking the mail queue in my office, since if it gets cluttered with newsletters or unnecessary stuff (including the occasional password phishing from code vulnerabilities in contact forms), it ends up slowing down other emails significantly.

by default, the qmail queue is 7 days long (604800 seconds). to check that, you can run the following:

# qmail-showctl | grep queue
queuelifetime: (Default.) Message lifetime in the queue is 604800 seconds.

(side point: there's a lot of cool stuff you can see there related to the qmail setup if you don't only grep for the queue.)

in my opinion, 7 days is just way too long. sometimes i'm checking the queue and an email is mailed to a wrong address... and the email just sits there while the mailserver repeatedly attempts to send the message to this nonexistent address. (for example, if you're looking to email someguy@aol.com and you accidentally addressed it with the domain aol.org, you'll be waiting a long time for a bounceback, which might cause frustration and anger because you thought you sent it to the right guy to begin with.)

everything on linux can be tweaked, and it's relatively easy to do at times. in this particular case, what is needed is a newly created file, /var/qmail/control/queuelifetime, which contains a single line: the number of seconds that you want the queue to last. in my case, i made it 172800 seconds (2 full days; a single day is 86400), so these emails get returned to sender informing them that they should get the right address or try later.

once you run this file, you can verify that the new queue length is in effect by running the following:

# /var/qmail/bin/qmail-showctl | grep queue
queuelifetime: Message lifetime in the queue is 172800 seconds.

note how it doesn't say "Default" anymore like the previous execution of the same command did.

to force those old emails to be sent? just run qmHandle -a and you'll notice that the queue (qmHandle -l) has gotten a lot shorter.

if you don't have qmHandle, you can get it on sourceforge; just click here. it's not part of the regular qmail distribution. more information on qmHandle can be found in this blog entry.

TrackBack

TrackBack URL for this entry:
http://www.ramblingsofasysadmin.com/cgi-bin/mt/mt-tb.cgi/25

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)