mail_redirect
The Mail Redirect module redirects ALL system generated email (see notes below that CC/BCC were not supported until the 3.x branches of D7/D8/D9) to a test mail domain or address. This is especially useful when doing site testing which uses a production database which is populated with real email addresses.
Works with any mail generated by drupal_mail().
Latest Notes:
I have noticed that past use of setting CC/BCC in $message['params']['headers'] MAY no longer work. I haven't be able to find details on this core API change but possibly this is from D9.5+. I am releasing version 4.2.0 as compatible with D9.5/D10 which now sets CC/BCC directly in $message['headers']. Good idea to test that this is properly redirecting your CC/BCC addresses.
General Usage:
Drupal 7
usage:
- in your test site's settings.php set:
$conf = array('mail_redirect_opt' => "domain");
$conf = array('mail_redirect_domain' => "mydomain.com");
OR
$conf = array('mail_redirect_opt' => "address");
$conf = array('mail_redirect_address' => "[email protected]");
Drupal 8/9
usage:
- in your test site's settings.php set:
$config['mail_redirect.settings']['mail_redirect_opt'] = 'domain';
$config['mail_redirect.settings']['mail_redirect_domain'] = 'mydomain.com';
OR
$config['mail_redirect.settings']['mail_redirect_opt'] = 'address';
$config['mail_redirect.settings']['mail_redirect_domain'] = '[email protected]'
result:
- input $to: [email protected]
- output $to:
[email protected]
OR
[email protected]
This module was developed for a multi-developer test environment where ongoing development work runs in parallel with the operation of the production site. The developers regularly sync their test site's db to that of the production server. Our general development environment provides numerous sites folders for a mutli-site setup so that each developer has their own local and server based sandboxes for testing and development. As an example:
3 developers: tom, joe, hank
site folders as:
- www.oursite.com (production site)
- oursite.joe (joe's local)
- oursite.tom
- oursite.hank
- joe.oursite.com (joe's server sandbox)
- hank.oursite.com
- tom.oursite.com
Set up subdomains on a shared host account (we use Dreamhost.com) which provides unlimited subdomains and catch-all email accounts.
e.g. mail domains:
- joe.somedomain.com
- hank.somedomain.com
Set each of these up with catch-all mail accounts.
For Joe's local development system (oursite.joe):
- in sites/oursite.joe/settings.php
- defined $conf['mail_redirect_domain'] = 'joe.somedomain.com';
Now, when mail_redirect module is enabled all the site email will redirect to that domain. E.g.:
[email protected] -> [email protected]
All mail will be sent to one catch-all account and it is possible to see what email the system has sent out and who they have been sent to.
This project was designed by LiquidCMS and funded by LifeWire, a NY Times Company.
Drupal 7
Added features in D7 version:
- allow list of addresses to ignore when doing redirect
- silent redirect to simply not send the redirected emails
Drupal 7.x-3.x
Added features in D7 Rel 3.x version:
- support redirecting to a single email address
- add support for CC/BCC
- NOTE: Prior to 3.x branch CC/BCC was not supported.
Drupal 8.x-3.x
- NOTE: Prior to 3.x branch CC/BCC was not supported.