bounce_email 0.2.5 → 0.2.6
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/HISTORY.md +5 -0
- data/VERSION +1 -1
- data/lib/bounce_email.rb +16 -8
- data/test/bounce_email_test.rb +13 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b8e9f25b36dce53b33d25f917cb84b495bbc3c9
|
4
|
+
data.tar.gz: 35776ace384b6a8f76074fcb223112d4feae01e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6ece81090252f87b3be36f0b3c86530e1dcf910cde99463977a8fa13a7d6b8c14ae0eac94b4b915d38c27dacb15c5727796cc21a36c79658c978f50fc01a67b
|
7
|
+
data.tar.gz: 0c4f261ede847ad967883971895d8206da080729664061d79d28c6aa58f5d63d824dd0d1903bdecc542dda9c2ed76631533a00fa8b2c11e2fb808a0a37471df3
|
data/HISTORY.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 0.2.6
|
2
|
+
|
3
|
+
* Replaced 'X-Original-To' header with 'X-Failed-Recipients' (@saghaulor, livebg/bounce_email#10)
|
4
|
+
* Properly extract "To" from original email (@saghaulor, livebg/bounce_email#8)
|
5
|
+
|
1
6
|
## 0.2.5
|
2
7
|
|
3
8
|
* Fix parsing of original mail (@saghaulor, livebg/bounce_email#6)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.6
|
data/lib/bounce_email.rb
CHANGED
@@ -225,7 +225,7 @@ module BounceEmail
|
|
225
225
|
elsif i = index_of_original_message_delimiter(mail)
|
226
226
|
::Mail.new(extract_original_message_after_delimiter(mail, i))
|
227
227
|
end
|
228
|
-
return
|
228
|
+
return extract_and_assign_fields_from(mail, original) if original
|
229
229
|
rescue => e
|
230
230
|
nil
|
231
231
|
end
|
@@ -241,16 +241,24 @@ module BounceEmail
|
|
241
241
|
message
|
242
242
|
end
|
243
243
|
|
244
|
-
def
|
245
|
-
if
|
246
|
-
|
244
|
+
def extract_and_assign_fields_from(bounce, original)
|
245
|
+
if original.message_id.nil?
|
246
|
+
original.add_message_id extract_field_from(original, /^Message-ID:/)
|
247
247
|
end
|
248
248
|
|
249
|
-
|
250
|
-
mail.to ||= extract_field_from(mail, 'To:')
|
251
|
-
mail.subject ||= extract_field_from(mail, 'Subject:')
|
249
|
+
original.from ||= extract_field_from(original, /^From:/)
|
252
250
|
|
253
|
-
|
251
|
+
original.to ||= (extract_original_to_field_from_header(bounce) ||
|
252
|
+
extract_field_from(original, /^To:/))
|
253
|
+
|
254
|
+
original.subject ||= extract_field_from(original, /^Subject:/)
|
255
|
+
|
256
|
+
original
|
257
|
+
end
|
258
|
+
|
259
|
+
def extract_original_to_field_from_header(mail)
|
260
|
+
header = mail.header["X-Failed-Recipients"]
|
261
|
+
header.value if header && header.value
|
254
262
|
end
|
255
263
|
|
256
264
|
def extract_field_from(mail, field_name)
|
data/test/bounce_email_test.rb
CHANGED
@@ -108,7 +108,7 @@ class BounceEmailTest < Test::Unit::TestCase
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_original_message_with_multipart_mails
|
111
|
-
multipart_mails = %w(
|
111
|
+
multipart_mails = %w(05 07 10 11 13 15 16 23 24)
|
112
112
|
multipart_mails.map do |file|
|
113
113
|
mail = File.join(File.dirname(__FILE__), 'bounces', "tt_bounce_#{file}.txt")
|
114
114
|
bounce = BounceEmail::Mail.new Mail.read(mail)
|
@@ -119,6 +119,18 @@ class BounceEmailTest < Test::Unit::TestCase
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
|
+
def test_original_message_with_multipart_mails_without_to_field
|
123
|
+
multipart_mails = %w(03 04)
|
124
|
+
multipart_mails.map do |file|
|
125
|
+
mail = File.join(File.dirname(__FILE__), 'bounces', "tt_bounce_#{file}.txt")
|
126
|
+
bounce = BounceEmail::Mail.new Mail.read(mail)
|
127
|
+
assert_not_nil bounce.original_mail
|
128
|
+
assert_not_nil bounce.original_mail.message_id
|
129
|
+
assert_equal [], bounce.original_mail.to
|
130
|
+
assert_not_nil bounce.original_mail.from
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
122
134
|
def test_original_message_without_inline_original_message
|
123
135
|
bounce = test_bounce('tt_bounce_01')
|
124
136
|
assert_nil bounce.original_mail
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bounce_email
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Bielohlawek
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: mail
|