action_recipient 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +85 -3
- data/lib/action_recipient/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 200eadc692f55fd4253823211aad73f9da3ce764db8da5526101ba08792421a5
|
4
|
+
data.tar.gz: 5e2de7f64a2fa5cc2b0e0eb1906f2e033e24b6e86ec089eebea5d072936017eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d67685b2e4dec21fee76aa8566413d4eebf02b3c857a6993c5cfdb4dd82347851058c7e5dc8936a4bc14d062f7e9196c4ba9bfc31e8a8cabeac8a95bb34b2a5
|
7
|
+
data.tar.gz: 9ffef13353d2a2e27a75c0185902937c0a7e5eb60f86204807487a64c4820a963ff08d825e7aeb590835a708adfeb9133f292b39aaea1393cb1aa7e650e8d876
|
data/README.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
|
+

|
2
|
+

|
3
|
+

|
4
|
+
|
1
5
|
# ActionRecipient
|
2
6
|
|
3
|
-
|
7
|
+
This gem overwrites email recipients addresses sent by ActionMailer , so that to prevent your application from dispatching emails accidentally to existing addresses, expecially your users or clients in non-production environments.
|
8
|
+
|
9
|
+
### IMPORTANT NOTES
|
10
|
+
|
11
|
+
* this gem is developed and tested carefully, but it does NOT mean this is 100% reliable. Please use this at your own risks, and test carefully before use.
|
12
|
+
|
13
|
+
* It HAS NO EFFECT on the Non-Actionmailer emails (i.e. if the emails are delivered out of ActionMailer's control)
|
14
|
+
|
15
|
+
* for example, if you are sending batch emails directly via Mailgun API, the gem cannot overwrite its addresses - please consider managing recipient addresses on your own.
|
4
16
|
|
5
17
|
## Installation
|
6
18
|
|
@@ -20,7 +32,77 @@ Or install it yourself as:
|
|
20
32
|
|
21
33
|
## Usage
|
22
34
|
|
23
|
-
|
35
|
+
### Getting Started
|
36
|
+
|
37
|
+
Let's say you want to trap all the emails that are sent out in staging environment. You need to replace outgoing emails' addresses to your work address `your_address_to_redirect@gmail.com`, with a few exception such as `my_personal_adddress@example.com`
|
38
|
+
|
39
|
+
In `config/initializers`, register ActionRecipient as follows:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
# config/initializers/action_recipient.rb
|
43
|
+
|
44
|
+
if Rails.env.staging? # works only in staging environment
|
45
|
+
|
46
|
+
ActionRecipient.configure do |config|
|
47
|
+
config.format = 'your_address_to_redirect+%s@gmail.com'
|
48
|
+
|
49
|
+
config.whitelist = [
|
50
|
+
'safe_address@example.com',
|
51
|
+
'my_personal_adddress@example.com'
|
52
|
+
]
|
53
|
+
end
|
54
|
+
|
55
|
+
ActionMailer::Base.register_interceptor(ActionRecipient::Interceptor)
|
56
|
+
end
|
57
|
+
```
|
58
|
+
|
59
|
+
Then, if you send an email to `admin@your_client.com` using ActionMailer, this gem traps it and overwrites its addresses as `your_address_to_redirect+admin_at_your_client.com@gmail.com`.
|
60
|
+
|
61
|
+
You can find the email at your mailbox in `your_address_to_redirect@gmail.com`, just as your client would do if it were in production - with the only difference in its `to` address that are slightly modified.
|
62
|
+
|
63
|
+
### Detailed Settings
|
64
|
+
|
65
|
+
1. set your "safe address" to indicate ActionRecipient an address to redirect outgoing emails:
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
ActionRecipient.configure do |config|
|
69
|
+
config.format = 'your_address_to_rediredt+%s@gmail.com'
|
70
|
+
end
|
71
|
+
```
|
72
|
+
|
73
|
+
If you add **%s** in the format, it is automatically replaced with the original addresses after a few modifications. (see overwriting rules for deatils)
|
74
|
+
|
75
|
+
**DO NOT FORGET to specify a format**, otherwise your email addresses are not properly transformed, and your emails will not be successfully delivered.
|
76
|
+
|
77
|
+
2. you could also set a collection of whitelisted mails:
|
78
|
+
|
79
|
+
```ruby
|
80
|
+
ActionRecipient.configure do |config|
|
81
|
+
config.whitelist = [
|
82
|
+
'my_personal_address@example.com',
|
83
|
+
'my_colleagues_address@example.com'
|
84
|
+
]
|
85
|
+
end
|
86
|
+
```
|
87
|
+
|
88
|
+
Whitelisted emails addresses are not overwritten, thus can be delivered as usual.
|
89
|
+
|
90
|
+
3. register ActionRecipient as the interceptor
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
ActionMailer::Base.register_interceptor(ActionRecipient::Interceptor)
|
94
|
+
```
|
95
|
+
|
96
|
+
And you are good to go!
|
97
|
+
|
98
|
+
### Overwriting Rules
|
99
|
+
|
100
|
+
The original address is being transformed as follows:
|
101
|
+
|
102
|
+
- `@` is replaced with `_at_`
|
103
|
+
- any alphabetical/numeric charactors are preserved
|
104
|
+
- any dots `.` and underscores `_` are preserved as well
|
105
|
+
- any other charactors are replaced with hyphens `-`
|
24
106
|
|
25
107
|
## Development
|
26
108
|
|
@@ -30,7 +112,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
30
112
|
|
31
113
|
## Contributing
|
32
114
|
|
33
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
115
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/fursich/action_recipient.
|
34
116
|
|
35
117
|
## License
|
36
118
|
|