mail-redirector 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +7 -0
- data/README.markdown +44 -0
- data/Rakefile +10 -0
- data/lib/mail-redirector.rb +15 -0
- data/lib/mail-redirector/version.rb +2 -0
- data/mail-redirector.gemspec +26 -0
- data/spec/mail_redirector_spec.rb +18 -0
- data/spec/spec_helper.rb +4 -0
- metadata +93 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
Mail Redirector
|
2
|
+
===============
|
3
|
+
|
4
|
+
Installation
|
5
|
+
------------
|
6
|
+
|
7
|
+
### In Your Gemfile
|
8
|
+
|
9
|
+
> gem 'mail-redirector
|
10
|
+
|
11
|
+
### In config/initializers/mail-redirector.rb
|
12
|
+
|
13
|
+
> MailRedirector.setup_interceptor 'test@example.com'
|
14
|
+
|
15
|
+
That's it!
|
16
|
+
|
17
|
+
|
18
|
+
What it's doing
|
19
|
+
---------------
|
20
|
+
|
21
|
+
In all environments other than PRODUCTION or TEST, mail sent through
|
22
|
+
ActionMailer will be redirected to test@example.com. No mail will be
|
23
|
+
sent to its original destination. Instead, the X-Originally-To mail
|
24
|
+
header will be set, allowing you to determine who the mail would have
|
25
|
+
gone to had it not been redirected.
|
26
|
+
|
27
|
+
Mail in the TEST environment is specifically NOT redirected on the
|
28
|
+
assumption that it is more convenient to configure action mailer
|
29
|
+
to test delivery mode and still allow the tests to have access to
|
30
|
+
the original to field for testing purposes.
|
31
|
+
|
32
|
+
|
33
|
+
I want more control!
|
34
|
+
--------------------
|
35
|
+
|
36
|
+
If you want to change what addresses mail is redirected to in each
|
37
|
+
environment, then INSTEAD of calling setup_interceptor, place
|
38
|
+
a line of code like this:
|
39
|
+
|
40
|
+
> ActionMailer::Base.register_interceptor(MailRedirector.new("test@example.com"))
|
41
|
+
|
42
|
+
In each environment file, or wherever makes sense for you.
|
43
|
+
|
44
|
+
Happy redirecting!
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
class MailRedirector < Struct.new(:destination)
|
2
|
+
def delivering_email(m)
|
3
|
+
m['X-Originally-To'] = m.to.to_s
|
4
|
+
m.to = destination
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.setup_interceptor(email_to_redirect_to)
|
8
|
+
unless Rails.env.production? || Rails.env.test?
|
9
|
+
ActionMailer::Base.register_interceptor(
|
10
|
+
MailRedirector.new(email_to_redirect_to)
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "mail-redirector/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "mail-redirector"
|
7
|
+
s.version = MailRedirector::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["David Vollbracht"]
|
10
|
+
s.email = ["david@finario.com"]
|
11
|
+
s.homepage = "http://github.com/flipstone/mail-redirector"
|
12
|
+
s.summary = %q{Simple Rails 3 mail interceptor to redirect action mailer messages to a test address.}
|
13
|
+
s.description = <<-end_desc
|
14
|
+
Protect yourself for ever accidentally sendmail emails from an environment other than production. MailRedirector
|
15
|
+
lets you specify an email address to redirect all mail send by ActionMailer to. It also sets the X-Originally-To
|
16
|
+
header to the original recipients, ensuring you can inspect to message and verify it would have gone to the correct
|
17
|
+
recipients.
|
18
|
+
end_desc
|
19
|
+
|
20
|
+
s.add_dependency 'actionmailer', '>= 3.0.0'
|
21
|
+
|
22
|
+
s.files = `git ls-files`.split("\n")
|
23
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
+
s.require_paths = ["lib"]
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MailRedirector do
|
4
|
+
describe "delivering_email" do
|
5
|
+
it "sets the to" do
|
6
|
+
m = Mail.new to: "bar@example.com"
|
7
|
+
|
8
|
+
MailRedirector.new('test@example.com').delivering_email m
|
9
|
+
m.to.should == ['test@example.com']
|
10
|
+
end
|
11
|
+
|
12
|
+
it "sets a header with the original to" do
|
13
|
+
m = Mail.new to: "bar@example.com"
|
14
|
+
MailRedirector.new.delivering_email m
|
15
|
+
m['X-Originally-To'].to_s.should =~ /bar@example\.com/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mail-redirector
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- David Vollbracht
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-09-02 00:00:00 -04:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: actionmailer
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 3
|
30
|
+
- 0
|
31
|
+
- 0
|
32
|
+
version: 3.0.0
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: |
|
36
|
+
Protect yourself for ever accidentally sendmail emails from an environment other than production. MailRedirector
|
37
|
+
lets you specify an email address to redirect all mail send by ActionMailer to. It also sets the X-Originally-To
|
38
|
+
header to the original recipients, ensuring you can inspect to message and verify it would have gone to the correct
|
39
|
+
recipients.
|
40
|
+
|
41
|
+
email:
|
42
|
+
- david@finario.com
|
43
|
+
executables: []
|
44
|
+
|
45
|
+
extensions: []
|
46
|
+
|
47
|
+
extra_rdoc_files: []
|
48
|
+
|
49
|
+
files:
|
50
|
+
- .gitignore
|
51
|
+
- Gemfile
|
52
|
+
- README.markdown
|
53
|
+
- Rakefile
|
54
|
+
- lib/mail-redirector.rb
|
55
|
+
- lib/mail-redirector/version.rb
|
56
|
+
- mail-redirector.gemspec
|
57
|
+
- spec/mail_redirector_spec.rb
|
58
|
+
- spec/spec_helper.rb
|
59
|
+
has_rdoc: true
|
60
|
+
homepage: http://github.com/flipstone/mail-redirector
|
61
|
+
licenses: []
|
62
|
+
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
segments:
|
82
|
+
- 0
|
83
|
+
version: "0"
|
84
|
+
requirements: []
|
85
|
+
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 1.3.7
|
88
|
+
signing_key:
|
89
|
+
specification_version: 3
|
90
|
+
summary: Simple Rails 3 mail interceptor to redirect action mailer messages to a test address.
|
91
|
+
test_files:
|
92
|
+
- spec/mail_redirector_spec.rb
|
93
|
+
- spec/spec_helper.rb
|