Force Qmail to send Emails in Queue.

Posted on 2009-07-09
Medium Priority
Last Modified: 2013-12-02

Qmail Queue Problem:

I would like to know how to force deliver the emails in queue. I have tried the solutions listed under the following section.


But still so many mails are remaining in queue. Also let me know if possible to force deliver each email separately using "qmhandle" or using any qmail tools.

Already tried "qmhandle -a".
Question by:LinuxGuru
LVL 43

Expert Comment

ID: 24816961
Maybe You should take a look at maillog to find out why those deliveries fail.
The mentioned solutions (killall -ALRM qmail-send) instructs qmail to try all messages again, but it's for nothing if deliveries fail.
LVL 21

Expert Comment

by:Daniel McAllister
ID: 24823974
Do you not have the qmailctl script?

If so, enter "qmailctl doqueue" and you'll restart the entire queue sending...

However, I suspect that ravenpl is correct -- there is a REASON these messages are still in the queue -- they are not deliverable for a reason, and that reason should be gleamable from the log files for qmail-send

Hope this helps!

LVL 13

Author Comment

ID: 24829169
Thanks for your suggestions. I will try installing qmailctl script and let you know the results.
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

LVL 13

Author Comment

ID: 24829855
Tried installing qmailctl script and getting the following error while running the script.

/var/qmail/bin/qmailctl doqueue
Flushing timeout table and sending ALRM signal to qmail-send.
/var/qmail/bin/qmailctl: line 50: svc: command not found

Any ideas ?
LVL 13

Author Comment

ID: 24829871
I have also checked the log files. I was not able to find any reasons. :(
LVL 13

Author Comment

ID: 24829919
Please let me know how to install this svc ...
LVL 21

Accepted Solution

Daniel McAllister earned 500 total points
ID: 24834741
qmailctl is a script -- and it is usually provided with the "distribution" of qmail that you install... so again, I ask if you know which "install guide" you followed when you installed QMail to start with? If not, I can pepper you with additional questions to try to discover which one it is, or we can re-install QMail with a setup we know.

In the mean time, please post the following bits of information...

 1) Run qmail-qstat (it SHOULD be in /var/qmail/bin) and post the 2-line output here
 2) Run qmail-qread (in same location) and post the first 25 lines of the output (qmail-qread | head -25)

The last part will be kinda tricky...
 a) open (for reading) the log file for qmail-send (on my system, this is located at /var/log/qmail/send, but yours may be different)... Remember, QMail uses tai64 timing, and rolls-over log files when they reach a certain size or age -- so I'm only interested in the current log file. So, in my case, I would run:
     vi -R /var/log/qmail/send/current
 b) look at the FIRST line of output of the qmail-qread file -- it will show a MESSAGE NUMBER... for example:
       12 Jul 2009 07:07:05 GMT  #90096614  2123  
     In the above example, the message number is 90096614
 c) Go to the BOTTOM of the log file (current) and search UPWARD for that message number... in my case, in vi I'd enter
 d) The line you "land on" should START with the words (after the tai64 time stamp) "starting delivery"... if not, press n to search for the next prior instance
 e) Post the contents of the line you landed on PLUS all of the lines that follow until the next "starting delivery" line

What you've done is:
 1) read the number of items in the queue
 2) shown the first few entries in the queue
 3) used the queue entry to get the message number for an undelivered message, then found the latest attempt by qmail-send to deliver that message

I'll await your reply!


LVL 13

Author Comment

ID: 24946347

Am sorry for the late reply. Finally i got the solution.Some spam mails was stopping the mails. I have blocked all the ips and now everything works fine now. Thanks for all your suggestions.

Thank you very much.

Expert Comment

ID: 37411492
Also, you should verify whether or not, your domain IP is part of any RBL or CBL or not. If that is case, then also the messages will remain queued without getting transmitted and doqueue/flush / ALRM signal may not do any good.


Featured Post

Train for your Pen Testing Engineer Certification

Enroll today in this bundle of courses to gain experience in the logistics of pen testing, Linux fundamentals, vulnerability assessments, detecting live systems, and more! This series, valued at $3,000, is free for Premium members, Team Accounts, and Qualified Experts.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Steps to fix “Unable to mount database. (hr=0x80004005, ec=1108)”.
Among the most obnoxious of Exchange errors is error 1216 – Attached Database Mismatch error of the Jet Database Engine. When faced with this error, users may have to suffer from mailbox inaccessibility and in worst situations, permanent data loss.
In this video we show how to create an Address List in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Organization >> Ad…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question