Manage the Exim mail queue via SSH

Manage the Exim mail queue via SSH

To follow this guide you'll have to have root access to either your VPS or dedicated server so you can access the Exim commands.

Viewing messages in the Exim mail queue

Using the steps below, I'll show you how to locate a message that we've attempted to send to, but it hasn't arrived yet in that user's Inbox so we'd like to investigate why.

  1. Login to your server via SSH as the root user.
  2. Run the following command to view the current Exim mail queue:

    exim -bp

    You should get back something that looks like:

    8m 13K 1TwJgO-0001q8-E5 <> *** frozen ***

    7m 7.5K 1TwJhK-00037o-U8 <> *** frozen ***

    5m 8.0K 1TwJic-00047T-70 <> *** frozen ***

    3m 7.6K 1TwJlQ-0006MV-84 <> *** frozen ***

    In this case we can see that there are 4 messages waiting to try to deliver to, but they are all frozen. This means Exim has encountered an error while trying to deliver the message, and it has frozen it, until the next delivery retry time.

  3. Now you can take one of the Exim message IDs from the queue and further investigate it in the Exim mail log as to why the message can't deliver with this command:

    exigrep -I -l 1TwJlQ-0006MV-84 /var/log/exim_mainlog

    This will give you back the full transaction of that message ID exposing

    2013-01-18 16:46:16 1TwJlQ-0006MV-84 <= H=localhost [] T="Update on employee contacts" for
    2013-01-18 16:46:16 1TwJlQ-0006MV-84 ** R=virtual_user_maildir_overquota: Mailbox quota exceeded
    2013-01-18 16:46:16 1TwJlQ-0006MV-84 Completed

  4. Now in this case we can see that this message is failing because the server is giving back an error of Mailbox quota exceeded.

    If you'd like to attempt to go ahead and forcefully try to re-send the message you can run this command on the message ID:

    exim -M 1TwJlQ-0006MV-84

    If you wanted to remove the message from the mail queue.

    exim -Mrm 1TwJlQ-0006MV-84
  • 0 Users Found This Useful
Was this answer helpful?