lonbaker-tmail 1.2.3.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.
Files changed (97) hide show
  1. data/CHANGES +74 -0
  2. data/LICENSE +21 -0
  3. data/NOTES +7 -0
  4. data/README +169 -0
  5. data/ext/Makefile +20 -0
  6. data/ext/tmailscanner/tmail/MANIFEST +4 -0
  7. data/ext/tmailscanner/tmail/depend +1 -0
  8. data/ext/tmailscanner/tmail/extconf.rb +33 -0
  9. data/ext/tmailscanner/tmail/tmailscanner.c +583 -0
  10. data/lib/tmail.rb +5 -0
  11. data/lib/tmail/Makefile +18 -0
  12. data/lib/tmail/address.rb +426 -0
  13. data/lib/tmail/attachments.rb +46 -0
  14. data/lib/tmail/base64.rb +46 -0
  15. data/lib/tmail/compat.rb +41 -0
  16. data/lib/tmail/config.rb +67 -0
  17. data/lib/tmail/core_extensions.rb +63 -0
  18. data/lib/tmail/encode.rb +590 -0
  19. data/lib/tmail/header.rb +962 -0
  20. data/lib/tmail/index.rb +9 -0
  21. data/lib/tmail/interface.rb +1130 -0
  22. data/lib/tmail/loader.rb +3 -0
  23. data/lib/tmail/mail.rb +580 -0
  24. data/lib/tmail/mailbox.rb +496 -0
  25. data/lib/tmail/main.rb +6 -0
  26. data/lib/tmail/mbox.rb +3 -0
  27. data/lib/tmail/net.rb +248 -0
  28. data/lib/tmail/obsolete.rb +132 -0
  29. data/lib/tmail/parser.rb +1476 -0
  30. data/lib/tmail/parser.y +381 -0
  31. data/lib/tmail/port.rb +379 -0
  32. data/lib/tmail/quoting.rb +118 -0
  33. data/lib/tmail/require_arch.rb +58 -0
  34. data/lib/tmail/scanner.rb +49 -0
  35. data/lib/tmail/scanner_r.rb +261 -0
  36. data/lib/tmail/stringio.rb +280 -0
  37. data/lib/tmail/utils.rb +351 -0
  38. data/lib/tmail/version.rb +39 -0
  39. data/meta/MANIFEST +128 -0
  40. data/meta/project.yaml +30 -0
  41. data/meta/unixname +1 -0
  42. data/sample/bench_base64.rb +48 -0
  43. data/sample/data/multipart +23 -0
  44. data/sample/data/normal +29 -0
  45. data/sample/data/sendtest +5 -0
  46. data/sample/data/simple +14 -0
  47. data/sample/data/test +27 -0
  48. data/sample/extract-attachements.rb +33 -0
  49. data/sample/from-check.rb +26 -0
  50. data/sample/multipart.rb +26 -0
  51. data/sample/parse-bench.rb +68 -0
  52. data/sample/parse-test.rb +19 -0
  53. data/sample/sendmail.rb +94 -0
  54. data/test/extctrl.rb +6 -0
  55. data/test/fixtures/mailbox +414 -0
  56. data/test/fixtures/mailbox_without_any_from_or_sender +10 -0
  57. data/test/fixtures/mailbox_without_from +11 -0
  58. data/test/fixtures/mailbox_without_return_path +12 -0
  59. data/test/fixtures/raw_base64_decoded_string +0 -0
  60. data/test/fixtures/raw_base64_email +83 -0
  61. data/test/fixtures/raw_base64_encoded_string +1 -0
  62. data/test/fixtures/raw_email +14 -0
  63. data/test/fixtures/raw_email10 +20 -0
  64. data/test/fixtures/raw_email11 +34 -0
  65. data/test/fixtures/raw_email12 +32 -0
  66. data/test/fixtures/raw_email13 +29 -0
  67. data/test/fixtures/raw_email2 +114 -0
  68. data/test/fixtures/raw_email3 +70 -0
  69. data/test/fixtures/raw_email4 +59 -0
  70. data/test/fixtures/raw_email5 +19 -0
  71. data/test/fixtures/raw_email6 +20 -0
  72. data/test/fixtures/raw_email7 +66 -0
  73. data/test/fixtures/raw_email8 +47 -0
  74. data/test/fixtures/raw_email9 +28 -0
  75. data/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  76. data/test/fixtures/raw_email_reply +32 -0
  77. data/test/fixtures/raw_email_simple +11 -0
  78. data/test/fixtures/raw_email_with_bad_date +48 -0
  79. data/test/fixtures/raw_email_with_illegal_boundary +58 -0
  80. data/test/fixtures/raw_email_with_multipart_mixed_quoted_boundary +50 -0
  81. data/test/fixtures/raw_email_with_nested_attachment +100 -0
  82. data/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  83. data/test/fixtures/raw_email_with_quoted_illegal_boundary +58 -0
  84. data/test/kcode.rb +14 -0
  85. data/test/test_address.rb +1211 -0
  86. data/test/test_attachments.rb +60 -0
  87. data/test/test_base64.rb +64 -0
  88. data/test/test_encode.rb +85 -0
  89. data/test/test_header.rb +969 -0
  90. data/test/test_helper.rb +9 -0
  91. data/test/test_mail.rb +753 -0
  92. data/test/test_mbox.rb +184 -0
  93. data/test/test_port.rb +436 -0
  94. data/test/test_quote.rb +98 -0
  95. data/test/test_scanner.rb +209 -0
  96. data/test/test_utils.rb +36 -0
  97. metadata +159 -0
@@ -0,0 +1,98 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+ require 'test_helper'
3
+
4
+ class TestQuote < Test::Unit::TestCase
5
+ def test_unquote_quoted_printable
6
+ a ="=?ISO-8859-1?Q?[166417]_Bekr=E6ftelse_fra_Rejsefeber?="
7
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
8
+ expected = "[166417] Bekr\303\246ftelse fra Rejsefeber"
9
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
10
+ assert_equal expected, b
11
+ end
12
+
13
+ def test_unquote_base64
14
+ a ="=?ISO-8859-1?B?WzE2NjQxN10gQmVrcuZmdGVsc2UgZnJhIFJlanNlZmViZXI=?="
15
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
16
+ expected = "[166417] Bekr\303\246ftelse fra Rejsefeber"
17
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
18
+ assert_equal expected, b
19
+ end
20
+
21
+ def test_unquote_without_charset
22
+ a ="[166417]_Bekr=E6ftelse_fra_Rejsefeber"
23
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
24
+ expected = "[166417]_Bekr=E6ftelse_fra_Rejsefeber"
25
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
26
+ assert_equal expected, b
27
+ end
28
+
29
+ def test_unqoute_multiple
30
+ a ="=?utf-8?q?Re=3A_=5B12=5D_=23137=3A_Inkonsistente_verwendung_von_=22Hin?==?utf-8?b?enVmw7xnZW4i?="
31
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
32
+ expected = "Re: [12] #137: Inkonsistente verwendung von \"Hinzuf\303\274gen\""
33
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
34
+ assert_equal expected, b
35
+ end
36
+
37
+ def test_unqoute_in_the_middle
38
+ a ="Re: Photos =?ISO-8859-1?Q?Brosch=FCre_Rand?="
39
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
40
+ expected = "Re: Photos Brosch\303\274re Rand"
41
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
42
+ assert_equal expected, b
43
+ end
44
+
45
+ def test_unqoute_iso
46
+ a ="=?ISO-8859-1?Q?Brosch=FCre_Rand?="
47
+ b = TMail::Unquoter.unquote_and_convert_to(a, 'iso-8859-1')
48
+ expected = "Brosch\374re Rand"
49
+ expected.force_encoding 'iso-8859-1' if expected.respond_to? :force_encoding
50
+ assert_equal expected, b
51
+ end
52
+
53
+ def test_quote_multibyte_chars
54
+ original = "\303\246 \303\270 and \303\245"
55
+ unquoted = TMail::Unquoter.unquote_and_convert_to(original, nil)
56
+ original.force_encoding 'utf-8' if original.respond_to? :force_encoding
57
+ unquoted.force_encoding 'utf-8' if unquoted.respond_to? :force_encoding
58
+ assert_equal unquoted, original
59
+ end
60
+
61
+ # test an email that has been created using \r\n newlines, instead of
62
+ # \n newlines.
63
+ def test_email_quoted_with_0d0a
64
+ mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_quoted_with_0d0a"))
65
+ assert_match %r{Elapsed time}, mail.body
66
+ end
67
+
68
+ def test_email_with_partially_quoted_subject
69
+ mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_partially_quoted_subject"))
70
+ expected = "Re: Test: \"\346\274\242\345\255\227\" mid \"\346\274\242\345\255\227\" tail"
71
+ expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
72
+ assert_equal expected, mail.subject
73
+ end
74
+
75
+ def test_decode
76
+ encoded, decoded = expected_base64_strings
77
+ assert_equal decoded, TMail::Base64.decode(encoded)
78
+ end
79
+
80
+ def test_encode
81
+ encoded, decoded = expected_base64_strings
82
+ assert_equal encoded, TMail::Base64.encode(decoded)
83
+ end
84
+
85
+ private
86
+
87
+ def expected_base64_strings
88
+ if RUBY_VERSION < '1.9'
89
+ options = "r"
90
+ else
91
+ options = "r:ASCII-8BIT"
92
+ end
93
+ encoded = File.open("#{File.dirname(__FILE__)}/fixtures/raw_base64_encoded_string", options) {|f| f.read }
94
+ decoded = File.open("#{File.dirname(__FILE__)}/fixtures/raw_base64_decoded_string", options) {|f| f.read }
95
+ [encoded, decoded]
96
+ end
97
+
98
+ end
@@ -0,0 +1,209 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+ require 'test_helper'
3
+ require 'tmail/scanner'
4
+ require 'test/unit'
5
+
6
+ class ScannerTester < Test::Unit::TestCase
7
+ DEBUG = false
8
+
9
+ def do_test( scantype, str, ok, cmtok )
10
+ scanner = TMail::Scanner.new( str, scantype, comments = [] )
11
+ scanner.debug = DEBUG
12
+
13
+ idx = 0
14
+ scanner.scan do |sym, val|
15
+ if sym then
16
+ assert_equal ok.shift, [sym, val], "index=#{idx}"
17
+ else
18
+ assert_equal [false, '$'], [sym, val], "$end (index=#{idx})"
19
+ end
20
+ idx += 1
21
+ end
22
+ assert_equal [], ok
23
+
24
+ comments.each_with_index do |val, i|
25
+ assert_equal cmtok.shift, val, "index=#{i}"
26
+ end
27
+ end
28
+
29
+ def test_atommode
30
+ do_test :ADDRESS,
31
+ 'Capital CAPITAL word from id by with a0000',
32
+ [
33
+ [:ATOM, 'Capital'],
34
+ [:ATOM, 'CAPITAL'],
35
+ [:ATOM, 'word'],
36
+ [:ATOM, 'from'],
37
+ [:ATOM, 'id'],
38
+ [:ATOM, 'by'],
39
+ [:ATOM, 'with'],
40
+ [:ATOM, 'a0000']
41
+ ],
42
+ []
43
+
44
+ do_test :ADDRESS,
45
+ '(comment) (nested (comment) (again)) (a(b(c(d(e)))))',
46
+ [
47
+ ],
48
+ [
49
+ 'comment',
50
+ 'nested (comment) (again)',
51
+ 'a(b(c(d(e))))'
52
+ ]
53
+
54
+ do_test :ADDRESS,
55
+ '=?iso-2022-jp?B?axaxax?=',
56
+ [
57
+ [:ATOM, '=?iso-2022-jp?B?axaxax?=']
58
+ ],
59
+ []
60
+
61
+ word = 'abcdefghijklmnopqrstuvwxyz' +
62
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
63
+ '0123456789' +
64
+ %q[_#!$%&`'*+-{|}~^/=?]
65
+ do_test :ADDRESS, word,
66
+ [
67
+ [:ATOM, word]
68
+ ],
69
+ []
70
+
71
+ do_test :ADDRESS,
72
+ " \t\t\r\n \n\r\n \r \n atom",
73
+ [
74
+ [:ATOM, 'atom']
75
+ ],
76
+ []
77
+ end
78
+
79
+ def test_tokenmode
80
+ do_test :CTYPE,
81
+ 'text/html; charset=iso-2022-jp',
82
+ [
83
+ [:TOKEN, 'text'],
84
+ ['/' , '/'],
85
+ [:TOKEN, 'html'],
86
+ [';' , ';'],
87
+ [:TOKEN, 'charset'],
88
+ ['=' , '='],
89
+ [:TOKEN, 'iso-2022-jp']
90
+ ],
91
+ []
92
+
93
+ do_test :CTYPE,
94
+ 'Text/Plain; Charset=ISO-2022-JP',
95
+ [
96
+ [:TOKEN, 'Text'],
97
+ ['/' , '/'],
98
+ [:TOKEN, 'Plain'],
99
+ [';' , ';'],
100
+ [:TOKEN, 'Charset'],
101
+ ['=' , '='],
102
+ [:TOKEN, 'ISO-2022-JP'],
103
+ ],
104
+ []
105
+
106
+ do_test :CTYPE,
107
+ 'm_m/s_s; k_k=v_v',
108
+ [
109
+ [:TOKEN, 'm_m'],
110
+ ['/' , '/'],
111
+ [:TOKEN, 's_s'],
112
+ [';' , ';'],
113
+ [:TOKEN, 'k_k'],
114
+ ['=' , '='],
115
+ [:TOKEN, 'v_v'],
116
+ ],
117
+ []
118
+
119
+ word = 'abcdefghijklmnopqrstuvwxyz' +
120
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
121
+ '0123456789' +
122
+ %q[_#!$%&`'*+-{|}~^.]
123
+ do_test :CTYPE, word,
124
+ [
125
+ [:TOKEN, word]
126
+ ],
127
+ []
128
+ end
129
+
130
+ def test_received
131
+ do_test :RECEIVED,
132
+ 'from From by By via Via with With id Id for For',
133
+ [
134
+ [:FROM, 'from'],
135
+ [:FROM, 'From'],
136
+ [:BY, 'by'],
137
+ [:BY, 'By'],
138
+ [:VIA, 'via'],
139
+ [:VIA, 'Via'],
140
+ [:WITH, 'with'],
141
+ [:WITH, 'With'],
142
+ [:ID, 'id'],
143
+ [:ID, 'Id'],
144
+ [:FOR, 'for'],
145
+ [:FOR, 'For']
146
+ ],
147
+ []
148
+
149
+ str = <<EOS
150
+ from hoyogw.netlab.co.jp (daemon@hoyogw.netlab.co.jp [202.218.249.220])
151
+ by serv1.u-netsurf.ne.jp (8.8.8/3.6W-2.66(99/03/09))
152
+ with ESMTP id RAA10692 for <aamine@dp.u-netsurf.ne.jp>;
153
+ Thu, 18 Mar 1999 17:35:23 +0900 (JST)
154
+ EOS
155
+ ok = [
156
+ [ :FROM , 'from' ],
157
+ [ :ATOM , 'hoyogw' ],
158
+ [ '.' , '.' ],
159
+ [ :ATOM , 'netlab' ],
160
+ [ '.' , '.' ],
161
+ [ :ATOM , 'co' ],
162
+ [ '.' , '.' ],
163
+ [ :ATOM , 'jp' ],
164
+ [ :BY , 'by' ],
165
+ [ :ATOM , 'serv1' ],
166
+ [ '.' , '.' ],
167
+ [ :ATOM , 'u-netsurf' ],
168
+ [ '.' , '.' ],
169
+ [ :ATOM , 'ne' ],
170
+ [ '.' , '.' ],
171
+ [ :ATOM , 'jp' ],
172
+ [ :WITH , 'with' ],
173
+ [ :ATOM , 'ESMTP' ],
174
+ [ :ID , 'id' ],
175
+ [ :ATOM , 'RAA10692' ],
176
+ [ :FOR , 'for' ],
177
+ [ '<' , '<' ],
178
+ [ :ATOM , 'aamine' ],
179
+ [ '@' , '@' ],
180
+ [ :ATOM , 'dp' ],
181
+ [ '.' , '.' ],
182
+ [ :ATOM , 'u-netsurf' ],
183
+ [ '.' , '.' ],
184
+ [ :ATOM , 'ne' ],
185
+ [ '.' , '.' ],
186
+ [ :ATOM , 'jp' ],
187
+ [ '>' , '>' ],
188
+ [ ';' , ';' ],
189
+ [ :ATOM , 'Thu' ],
190
+ [ ',' , ',' ],
191
+ [ :DIGIT, '18' ],
192
+ [ :ATOM , 'Mar' ],
193
+ [ :DIGIT, '1999' ],
194
+ [ :DIGIT, '17' ],
195
+ [ ':' , ':' ],
196
+ [ :DIGIT, '35' ],
197
+ [ ':' , ':' ],
198
+ [ :DIGIT, '23' ],
199
+ [ :ATOM , '+0900' ]
200
+ ]
201
+ cmtok = [
202
+ 'daemon@hoyogw.netlab.co.jp [202.218.249.220]',
203
+ '8.8.8/3.6W-2.66(99/03/09)',
204
+ 'JST'
205
+ ]
206
+
207
+ do_test :RECEIVED, str, ok, cmtok
208
+ end
209
+ end
@@ -0,0 +1,36 @@
1
+ require 'test_helper'
2
+ require 'tmail'
3
+ require 'tmail/utils'
4
+
5
+ class TestUtils < Test::Unit::TestCase
6
+
7
+ include TMail::TextUtils
8
+
9
+ def _test_new_boundary
10
+ a = new_boundary()
11
+ b = new_boundary()
12
+ c = new_boundary()
13
+ assert_instance_of String, a
14
+ assert_instance_of String, b
15
+ assert_instance_of String, c
16
+ assert(a != b)
17
+ assert(b != c)
18
+ assert(c != a)
19
+ end
20
+
21
+ def test_unquote
22
+ mail = TMail::Mail.new
23
+ assert_equal('Hello', mail.unquote('"Hello"'))
24
+ end
25
+
26
+ def test_unquote_without_quotes
27
+ mail = TMail::Mail.new
28
+ assert_equal('Hello', mail.unquote('Hello'))
29
+ end
30
+
31
+ def test_unquote_with_nil
32
+ mail = TMail::Mail.new
33
+ assert_equal(nil, mail.unquote(nil))
34
+ end
35
+
36
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lonbaker-tmail
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Minero Aoki
8
+ - Mikel Lindsaar
9
+ - Lon Baker
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2008-08-26 00:00:00 -07:00
15
+ default_executable:
16
+ dependencies: []
17
+
18
+ description: TMail is a Ruby-based mail handler. It allows you to compose stadards compliant emails in a very Ruby-way.
19
+ email: lon@kickasspixels.com
20
+ executables: []
21
+
22
+ extensions: []
23
+
24
+ extra_rdoc_files: []
25
+
26
+ files:
27
+ - CHANGES
28
+ - LICENSE
29
+ - NOTES
30
+ - README
31
+ - ext
32
+ - ext/Makefile
33
+ - ext/tmailscanner
34
+ - ext/tmailscanner/tmail
35
+ - ext/tmailscanner/tmail/MANIFEST
36
+ - ext/tmailscanner/tmail/depend
37
+ - ext/tmailscanner/tmail/extconf.rb
38
+ - ext/tmailscanner/tmail/tmailscanner.c
39
+ - lib
40
+ - lib/tmail
41
+ - lib/tmail/Makefile
42
+ - lib/tmail/address.rb
43
+ - lib/tmail/attachments.rb
44
+ - lib/tmail/base64.rb
45
+ - lib/tmail/compat.rb
46
+ - lib/tmail/config.rb
47
+ - lib/tmail/core_extensions.rb
48
+ - lib/tmail/encode.rb
49
+ - lib/tmail/header.rb
50
+ - lib/tmail/index.rb
51
+ - lib/tmail/interface.rb
52
+ - lib/tmail/loader.rb
53
+ - lib/tmail/mail.rb
54
+ - lib/tmail/mailbox.rb
55
+ - lib/tmail/main.rb
56
+ - lib/tmail/mbox.rb
57
+ - lib/tmail/net.rb
58
+ - lib/tmail/obsolete.rb
59
+ - lib/tmail/parser.rb
60
+ - lib/tmail/parser.y
61
+ - lib/tmail/port.rb
62
+ - lib/tmail/quoting.rb
63
+ - lib/tmail/require_arch.rb
64
+ - lib/tmail/scanner.rb
65
+ - lib/tmail/scanner_r.rb
66
+ - lib/tmail/stringio.rb
67
+ - lib/tmail/utils.rb
68
+ - lib/tmail/version.rb
69
+ - lib/tmail.rb
70
+ - meta
71
+ - meta/MANIFEST
72
+ - meta/unixname
73
+ - meta/project.yaml
74
+ - sample
75
+ - sample/bench_base64.rb
76
+ - sample/data
77
+ - sample/data/multipart
78
+ - sample/data/normal
79
+ - sample/data/sendtest
80
+ - sample/data/simple
81
+ - sample/data/test
82
+ - sample/extract-attachements.rb
83
+ - sample/from-check.rb
84
+ - sample/multipart.rb
85
+ - sample/parse-bench.rb
86
+ - sample/parse-test.rb
87
+ - sample/sendmail.rb
88
+ has_rdoc: true
89
+ homepage: http://github.com/lonbaker/tmail
90
+ post_install_message:
91
+ rdoc_options: []
92
+
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ version:
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: "0"
106
+ version:
107
+ requirements: []
108
+
109
+ rubyforge_project:
110
+ rubygems_version: 1.2.0
111
+ signing_key:
112
+ specification_version: 2
113
+ summary: Ruby Mail Handler
114
+ test_files:
115
+ - test
116
+ - test/extctrl.rb
117
+ - test/fixtures
118
+ - test/fixtures/mailbox
119
+ - test/fixtures/mailbox_without_any_from_or_sender
120
+ - test/fixtures/mailbox_without_from
121
+ - test/fixtures/mailbox_without_return_path
122
+ - test/fixtures/raw_base64_decoded_string
123
+ - test/fixtures/raw_base64_email
124
+ - test/fixtures/raw_base64_encoded_string
125
+ - test/fixtures/raw_email
126
+ - test/fixtures/raw_email10
127
+ - test/fixtures/raw_email11
128
+ - test/fixtures/raw_email12
129
+ - test/fixtures/raw_email13
130
+ - test/fixtures/raw_email2
131
+ - test/fixtures/raw_email3
132
+ - test/fixtures/raw_email4
133
+ - test/fixtures/raw_email5
134
+ - test/fixtures/raw_email6
135
+ - test/fixtures/raw_email7
136
+ - test/fixtures/raw_email8
137
+ - test/fixtures/raw_email9
138
+ - test/fixtures/raw_email_quoted_with_0d0a
139
+ - test/fixtures/raw_email_reply
140
+ - test/fixtures/raw_email_simple
141
+ - test/fixtures/raw_email_with_bad_date
142
+ - test/fixtures/raw_email_with_illegal_boundary
143
+ - test/fixtures/raw_email_with_multipart_mixed_quoted_boundary
144
+ - test/fixtures/raw_email_with_nested_attachment
145
+ - test/fixtures/raw_email_with_partially_quoted_subject
146
+ - test/fixtures/raw_email_with_quoted_illegal_boundary
147
+ - test/kcode.rb
148
+ - test/test_address.rb
149
+ - test/test_attachments.rb
150
+ - test/test_base64.rb
151
+ - test/test_encode.rb
152
+ - test/test_header.rb
153
+ - test/test_helper.rb
154
+ - test/test_mail.rb
155
+ - test/test_mbox.rb
156
+ - test/test_port.rb
157
+ - test/test_quote.rb
158
+ - test/test_scanner.rb
159
+ - test/test_utils.rb