Ruby and Rails

Ruby と Ruby on Rails のこと

開発中のメールアドレスを安全にする mail_safe

開発中にメールアドレスがうっかり外に出ないようにしたい。でも、メールが送信されるのは確認したい。

そんな時は

myronmarston/mail_safe

を使うことで、メールアドレスを安全に変換してくれます。

例えば foo@example.com を「自分のアカウント+foo-AT-example.com@gmail.com」のように置換してくれます。

( gmail.com は自分のアカウントの後ろに「+何か」と書いても自分に届くんです )

設定 1 - 全メールを安全に

config/initializers/mail_safe.rb に

if defined?(MailSafe::Config)
    MailSafe::Config.replacement_address = lambda { |address| 
      "自分のアカウント+#{address.gsub(/[\w\-.]/, '_')}@gmail.com"
    }
end

と書けば、全メールを

自分のアカウント+____@____@gmail.com

にしてくれます。

設定 2 - 一部メールはそのままに

例えば社内の @exmaple.com と @example.net、それと full-address@example.info だけはそのまま送信したいこともあります。

その場合は下記。

if defined?(MailSafe::Config)
    MailSafe::Config.internal_address_definition = lambda { |address|
      address =~ /.*@example\.com/i ||
      address =~ /.*@example\.net/i ||
      address == 'full-address@example.info'
    }

  MailSafe::Config.replacement_address = lambda { |address|
    "自分のアカウント+#{ address.gsub('@', '-AT-') }@gmail.com"
  }
end

ちなみに To: が test@example.com なら

自分のアカウント+test-AT-example.com@gmail.com

のように、誰に送ったか分かるようにしています。