lonbaker-tmail 1.2.3.1

Sign up to get free protection for your applications and to get access to all the features.
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