action_mailer-logged_smtp_delivery 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/action_mailer/logged_smtp_delivery.rb +37 -69
- metadata +58 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7651e5af7c2a110d7f7fc8994118df3a1216d7e4
|
4
|
+
data.tar.gz: e81810d05d35b5b9ab7f0db2ef7ce22b0ea770ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 425765706313e3931e1c6ef65cc8865e3dec2a9fee4d08f7c8b75fd0add33052834ba1a43cbf82c3ac21a0d5f7cdd415db35ed4bb9b4b377c4e3fa0dbd7cf9b2
|
7
|
+
data.tar.gz: 8599fbf140a19b58decf53aaa357022fabbed53d9c6571a6d9231f958c8cc55dff59e6a7ddb0d4f31eed56791f8f99f17d7d48e761b313a1f545088c9d444bb7
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ require 'action_mailer/logged_smtp_delivery'
|
|
5
5
|
config.action_mailer.logged_smtp_settings = {
|
6
6
|
... normal smtp settings ...,
|
7
7
|
logger: Logger.new, # progress info
|
8
|
-
mail_file_logger:
|
8
|
+
mail_file_logger: FileLogger.new # write encoded mails for storage, must return path they were stored in
|
9
9
|
}
|
10
10
|
|
11
11
|
|
@@ -1,86 +1,54 @@
|
|
1
1
|
require 'action_mailer'
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
delivery = SMTPDelivery.new(mail, @settings, @settings.fetch(:logger))
|
2
|
+
require 'mail/network/delivery_methods/smtp'
|
3
|
+
|
4
|
+
class ActionMailer::LoggedSMTPDelivery < Mail::SMTP
|
5
|
+
def initialize(settings)
|
6
|
+
super
|
7
|
+
self.settings[:tls] = (settings[:tls] != false)
|
8
|
+
self.settings[:return_response] = true
|
9
|
+
self.logger = settings[:logger]
|
10
|
+
end
|
12
11
|
|
13
|
-
|
12
|
+
def deliver!(mail)
|
13
|
+
without_bcc(mail) do |mail|
|
14
|
+
if logger = settings[:mail_file_logger]
|
14
15
|
path = logger.log(mail.encoded)
|
15
|
-
|
16
|
+
log mail, "stored at #{path}"
|
16
17
|
end
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
class SMTPDelivery
|
23
|
-
attr_reader :mail, :settings, :logger
|
19
|
+
log_headers(mail)
|
20
|
+
log mail, "sender: #{mail.sender}"
|
21
|
+
log mail, "destinations: #{mail.destinations.inspect}"
|
24
22
|
|
25
|
-
|
26
|
-
@mail = mail
|
27
|
-
@settings = settings
|
28
|
-
@logger = logger
|
29
|
-
end
|
30
|
-
|
31
|
-
def perform
|
32
|
-
log_headers
|
33
|
-
log "sender: #{sender}"
|
34
|
-
log "destinations: #{destinations.inspect}"
|
35
|
-
|
36
|
-
smtp.start(*settings.values_at(:domain, :user_name, :password, :authentication)) do |session|
|
37
|
-
response = session.send_message(message, sender, destinations)
|
38
|
-
log "done #{response.inspect}"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def destinations
|
43
|
-
mail.destinations
|
44
|
-
end
|
23
|
+
response = super
|
45
24
|
|
46
|
-
|
47
|
-
original_bcc = mail.bcc
|
48
|
-
mail.bcc = nil
|
49
|
-
mail.encoded
|
50
|
-
ensure
|
51
|
-
mail.bcc = original_bcc
|
25
|
+
log mail, "done #{response.inspect}"
|
52
26
|
end
|
27
|
+
end
|
53
28
|
|
54
|
-
|
55
|
-
mail.from.first
|
56
|
-
end
|
29
|
+
private
|
57
30
|
|
58
|
-
|
59
|
-
settings[:log_header]
|
60
|
-
end
|
31
|
+
attr_accessor :logger
|
61
32
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
log "#{log_header}: [#{mail[log_header]}]" if log_header
|
70
|
-
end
|
33
|
+
def without_bcc(mail)
|
34
|
+
original_bcc = mail.bcc
|
35
|
+
mail.bcc = nil
|
36
|
+
yield mail
|
37
|
+
ensure
|
38
|
+
mail.bcc = original_bcc
|
39
|
+
end
|
71
40
|
|
72
|
-
|
73
|
-
|
74
|
-
|
41
|
+
def log_headers(mail)
|
42
|
+
log mail, "#{log_header}: [#{mail[log_header]}]" if log_header
|
43
|
+
end
|
75
44
|
|
76
|
-
|
77
|
-
|
78
|
-
|
45
|
+
def log_header
|
46
|
+
settings[:log_header]
|
47
|
+
end
|
79
48
|
|
80
|
-
|
81
|
-
|
82
|
-
end
|
49
|
+
def log(mail, message)
|
50
|
+
logger.info("#{mail.message_id} #{message}")
|
83
51
|
end
|
84
52
|
end
|
85
53
|
|
86
|
-
ActionMailer::Base.add_delivery_method :logged_smtp, ActionMailer::LoggedSMTPDelivery
|
54
|
+
ActionMailer::Base.add_delivery_method :logged_smtp, ActionMailer::LoggedSMTPDelivery
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: action_mailer-logged_smtp_delivery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Chapweske
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.2.19
|
20
|
-
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 4.2.0
|
23
|
+
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 3.2.19
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 4.2.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: minitest
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
39
|
+
version: '0'
|
34
40
|
type: :development
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
|
-
- - "
|
44
|
+
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
46
|
+
version: '0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: minitest-rg
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +86,48 @@ dependencies:
|
|
80
86
|
- - ">="
|
81
87
|
- !ruby/object:Gem::Version
|
82
88
|
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: wwtd
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: mailcrate
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.0.2
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 0.0.2
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: byebug
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
83
131
|
description: ActionMailer SMTP delivery strategy with advanced logging and Bcc support
|
84
132
|
email:
|
85
133
|
executables: []
|
@@ -88,7 +136,7 @@ extra_rdoc_files: []
|
|
88
136
|
files:
|
89
137
|
- README.md
|
90
138
|
- lib/action_mailer/logged_smtp_delivery.rb
|
91
|
-
homepage: https://github.com/
|
139
|
+
homepage: https://github.com/zendesk/action_mailer-logged_smtp_delivery
|
92
140
|
licenses:
|
93
141
|
- Apache V2
|
94
142
|
metadata: {}
|