Email Settings - Automatically configure your Craft CMS email settings based on your environment

Overview

Craft 2.x doesn't allow email to be automatically configured on a per-environment basis. This plugin fixes that, and allows you to have different email settings depending on the environment your Craft site is running in. For example the local / development versions of your site could use one email provider, and the live version another.

It is recommended that you configure the plugin email settings before installing the plugin in the Control Panel.

This plugin works with Craft 2.4.x and Craft 2.5.x. It isn't required for Craft 3.

Installation

Download and unzip the plugin in your craft/plugins folder. Make sure the plugin folder is called emailsettings.

Once that's done, view the Craft Control Panel, go to Settings > Plugins, then you should see the plugin has been detected by Craft. Before hitting Install, we should configure the email settings for each environment.

Firstly, open craft/plugins/emailsettings/config.php. You’ll see some example email configurations here:

return [
    // Global settings
    '*' => [
        'emailAddress' => 'hello@red-robot.co.uk',
        'port' => '25',
        // Valid options are 'sendmail', 'smtp', 'pop' or 'gmail'
        'protocol' => 'smtp',
        'senderName' => 'Red Robot',
        'smtpAuth' => 1,
        'smtpKeepAlive' => 0,
        // Valid options are 'none', 'ssl' or 'tls'
        'smtpSecureTransportType' => 'none',
        'template' => '',
        'timeout' => '30'
    ],

    // Mail trap settings
    'mailtrap' => [
        'username' => 'username',
        'password' => 'password',
        'host' => 'smtp.mailtrap.io'
    ],

    // Live email site settings
    'live' => [
        'username' => 'username',
        'password' => 'password',
        'host' => 'smtp.emailprovider.net'
    ]
];

You should edit / add a configuration array for each email provider you’ll be using.

Email settings in the plugin file are ‘merged / inherited’ in the same was as the Craft general config file.

Once you’ve configured the various email provider details, open craft/config/general.php. To make all domains use the ‘mailtrap’ configuration (for example), edit the file as follows:

return [
    '*' => [
        'siteUrl' => SITE_URL,
        // ...
        'emailConfig' => 'mailtrap'
    ]
]

Now every environment will use the ‘mailtrap’ configuration defined in craft/plugins/emailsettings/config.php. Add additional emailConfig keys / values to configure email for your other environments as needed.

Once you’ve finished with the configuration, hit ‘Install’, then visit Settings > Email in the Craft Control Panel. You should see a notice saying the settings are being overridden by the plugin. Scroll down, hit ‘Test’, and you should receive a test email using the email provider for the current environment.

If you change any of the email settings in either the plugin config file, or the Craft plugin file, the site email configuration will updated the next time a page is viewed in the site (i.e. you can just refresh the Email Settings page, and the settings will be updated automatically).

Once your configuration files are updated, Craft will automatically switch email settings depending on the environment it's running in.

If you have any questions, feedback, or need any help with the plugin, please feel free to contact us via the website, or email us at hello@red-robot.co.uk.

Red Robot Digital Ltd
28 Brock Street
Bath
BA1 2LN

t: 0845 004 0045
e: hello@red-robot.co.uk

Social Media