This documentation refers to an older version of CiviCRM (3.4 / 4.0). View latest version.

Skip to end of metadata
Go to start of metadata
This page refers to CiviCRM 3.4 and 4.0, current STABLE version.

Documentation Search

CiviCRM 3.4 and 4.0 Documentation

Support and Participation

Developer Resources

CiviCRM books!

Make sure to check out the FLOSS Manual Understanding CiviCRM as well! You can also support this project by ordering a hard copy.

Or support us by buying an eBook or hard copy of Using CiviCRM from Packt Publishing.

When the recipient's email server responds with a "bounce" email it could be for a variety of reasons.  The CiviCRM mail processing script attempts to determine the cause for the bounce by parsing the bounce email returned by the receipient's email server.  Based on the nature of the bounce and the number of times a bounce has occured attempting to send to this particular email, a Contact's email may be placed on hold.

Why is a Contact put on "hold"?

Here is a list from the database of the different types of bounces, and how many times each bounce must occur before CiviCRM deems on hold appropriate.

Removing Hold

Version 3.2 and after

In version 3.2 and later, Advanced Search has an option for finding " Email On Hold" contacts.  By selecting some or all of the results and "Unhold Emails" you can remove the hold from certain Contacts.  Be careful removing Hold status from a Contact, as Hold status could exist for a very good reason.  

Version 3.1 and earlier

In version 3.1 and earlier, the user could use the Search Builder function to find those contacts with an email on hold.   The user could also look at the bounce report of a CiviMail sent message.  However, once on hold a Contact may only be removed from this status by a CiviCRM user manually by editing a Contact's record page.

As CiviCRM administrator, you could execute a series of queries aimed at searching for Contacts with on hold status and/or batch removing hold status.

Hold status is recorded in the civicrm_email table as column on_hold. The most basic way of batch removing on hold status is by use of a simple query such as this one:

Warning: backup your database before running any direct queries.
Warning: this query will remove all "ON HOLD" status from email addresses, whether the email should be on hold or NOT!

A more nuanced query might be something like:

  • None