Set up local bounce processing

If you're setting up CiviMail, you'll need a bounce processing account on a system that supports subaddressing. GMail/Google Apps works for this - Exchange and Office 365 do not. So it's often desirable to set up your own server for bounce processing - it takes very little overhead, so you can run it on the same VPS that runs CiviCRM.

  • Create a user account: useradd -s /dev/null -m civibounces. Also set the password with passwd.
  • Install Postfix: apt-get install postfix. Select all the standard options.
  • Make sure your DNS A and PTR records are set up properly! You should also have an MX record, though you can get away with not having it if the domain's A record points to the server.
  • Install Dovecot. In theory this is unnecessary - you can specify a mailbox on localhost - but I've had less trouble with this approach. In Debian/Ubuntu: apt-get install dovecot-imapd. You can skip SSL since it's all over localhost.
  • For Debian, drop this file into /etc/dovecot/conf.d/99-mysettings.conf to configure dovecot.
    protocols = imap
    mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
    mail_privileged_group = mail
  • (Pretty sure this is NOT required on Debian 8, but maybe on other versions/distros): chmod g+rw /var/spool/mail/*
  • Check /etc/postfix/ to ensure that mydestination includes the domain you want to deliver mail to (e.g. "").
  • Open port 25 in your incoming firewall.
    • Linode has no firewall.
    • Amazon EC2 can be configured in the AWS Console.
    • Blackmesh managed servers have firewall that you need to submit a ticket to to open ports.
  • You should now be able to use this account for IMAP! Punch a temporary hole in your firewall at port 143 to access it from outside and connect Thunderbird to the account. Send a test message, of course.
  • Configure the Bounce Processing account in CiviCRM as you would any other IMAP-based account.

Updated by Joseph Lacey over 7 years ago · 9 revisions

Also available in: PDF HTML TXT

Go to top