Giter VIP home page Giter VIP logo

mail_safe's Introduction

mail_safe

Mail safe provides a safety net while you’re developing an application that uses ActionMailer. It keeps emails from escaping into the wild.

Once you’ve installed and configured this gem, you can rest assure that your app won’t send emails to external email addresses. Instead, emails that would normally be delivered to external addresses will be sent to an address of your choosing, and the body of the email will be appended with a note stating where the email was originally intended to go.

Download

Github: github.com/myronmarston/mail_safe

Gem:

gem install mail_safe --source http://gemcutter.org

Installation

Load the gem in your non-production environments using Rails’ 2.1+ gem support. For example, I’m loading this in config/environments/development.rb and config/environments/staging.rb:

config.gem 'mail_safe', :source => 'http://gemcutter.org'

IMPORTANT: Be sure not to load this in your production environment, otherwise, your emails won’t be sent to the proper recipients. In your test environment, you probably won’t want this, either–rails ensures that no emails are ever sent in the test environment, and tests that check outbound email recipients may fail.

Configuration

In many cases, no configuration is necessary. If you have git installed, and you’ve registered your email address with it (check with “git config user.email” in your shell), mail safe will use this. All emails will be sent to this address.

Otherwise, you can configure mail safe’s behavior. Create a file at config/initializers/mail_safe.rb, similar to the following:

if defined?(MailSafe::Config)
  MailSafe::Config.internal_address_definition = /.*@my-domain\.com/i
  MailSafe::Config.replacement_address = '[email protected]'
end

The internal address definition determines which addresses will be ignored (i.e. sent normally) and which will be replaced. Email being sent to internal addresses will be sent normally; all other email addresses will be replaced by the replacement address.

These settings can also take procs if you need something more flexible:

if defined?(MailSafe::Config)
  MailSafe::Config.internal_address_definition = lambda { |address|
    address =~ /.*@domain1\.com/i ||
    address =~ /.*@domain2\.com/i ||
    address == '[email protected]'
  }

  # Useful if your mail server allows + dynamic email addresses like gmail.
  MailSafe::Config.replacement_address = lambda { |address| "my-address+#{address.gsub(/[\w\-.]/, '_')}@gmail.com" }
end

When mail safe replaces an email address, it appends a notice to the bottom of the email body, such as:

**************************************************
This email originally had different recipients,
but MailSafe has prevented it from being sent to them.

The original recipients were:
- to:
 - [email protected]
 - [email protected]
- cc:
 - [email protected]

**************************************************

Copyright © 2009 Myron Marston, Kashless.org. See LICENSE for details.

mail_safe's People

Contributors

codedojo-zz avatar myronmarston avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.