1. bluehost knowledge base

VPS & Dedicated Hosting: Clearing the Mail Queue

Overview

This article will explain how to clear the outbound mail queue on a dedicated or VPS server.


Click on any of these sections to jump to that point in the guide.


What You Need

  • The password for the root user on your server.
  • An SSH client like Terminal (Mac, Linux) or Putty (Windows).
  • A domain name that points to your server or your servers IP address.
 

Login through SSH

Note: These instructions require knowing the root password for your server. If you don't know the root password or haven't set one up, please see Log in to WHM.

Using Terminal (Mac, Linux)

  1. Open Terminal
  2. Type the following command to login into your server through SSH:
    ssh root@exampledomain.com
    Note: Replace exampledomain.com with your domain or IP address.
  3. If you receive a message about the authenticity of the host, type yes to continue connecting.
  4. When it asks for your password, enter the root password to your server.
    Note: It's normal not to see anything on the screen change as you enter your password.
 

Using Putty (Windows)

To make an SSH connection on Windows, you must have a compatible SSH client such as putty. You can download putty from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

  1. Open Putty
  2. Enter your domain or IP address as the hostname.
  3. Enter 22 for the port number.
  4. Protocol should be set to SSH.
  5. Click the Open button.
  6. If you receive a message about the authenticity of the host, type yes to continue connecting.
  7. When it asks for the username, type: root
  8. When it asks for the password, enter the password for the root user. Note: It's normal not to see anything on the screen change as you enter your password.
 

Clearing the Queue

Once you have logged into SSH as the root user, you will need to run a few commands to clear the queued mail files and the mail database.
 

Stopping the Mail System

Before clearing out the queue, it's a good idea to stop the mail system. This will take the mail system offline while you clean it up. Enter the following command to stop the mail service:
service exim stop
Stop Exim


 

Clearing out the Files

  1. After exim has stopped, enter the following command to clear out the mail files:
    exim -bp | awk '{print $3}' | xargs exim -Mrm - removing * 
    Note: This command may take some time to run if you have a large queue. You will not be given any progress indicator but will see a list of the messages as they are being removed. You will know it's finished when the command prompt returns.
 

Clearing out the Database

  1. Enter the following command to remove the mail stats database:
    mysqladmin drop eximstats;
    When prompted to confirm, type y.
    Drop EximStats
  2. Enter this command to create the mail stats database again: mysqladmin create eximstats;
    Create EximStats
  3. Finally, enter this command to restructure the database:
    mysql eximstats < /usr/local/cpanel/etc/eximstats_db.sql
 

Clearing out the Log

Clearing out the log will lower the file count, which may have spiked as a result of the excessively large mail queue. This is important because keeping your file count down will help your server perform better.

  1. Enter the following command to clear out the log:
    rm -rf /var/spool/exim/msglog/*
 

Restart The Mail system

Enter the following command to start the mail system again. 
service exim restart
Start Exim

Once the mail system has started you are finished clearing the queue.