Mailsafe
Safe emailing for Rails. Prevents you from sending emails to real customers from non-production environments. You can choose to either re-route all emails to a single developer account or allow only recipients of your own domain.
Installation
Add this line to your application's Gemfile:
gem 'mailsafe'
And then execute:
$ bundle
Usage
You can re-route all emails to your developer email account by adding this your development.rb file
Mailsafe.setup do |config|
config.override_receiver = "developer@devco.com"
end
The email subjects will be delivered to your account and prefixed with the original receiver in square brackets.
You can send emails to the intended recipients but only to a whitelist of receipient domains (e.g. helpful for a staging environment where you want to send emails to your company's and your client's domain)
Mailsafe.setup do |config|
config.allowed_domain = "devco.com, clientco.com"
end
If you are running multiple environments with mailsafe it can help to know which environment an email came from. You can have mailsafe prefix the subject line with [environment name]
config.prefix_email_subject_with_rails_env = true
Caveat
In order to filter (as in not send) emails I had to monkey patch the Mail#deliver method. If this makes you feel uneasy, better try out a different solution.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request