tmail 1.2.3.1 → 1.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README +10 -0
- data/ext/tmailscanner/tmail/tmailscanner.c +39 -8
- data/lib/tmail.rb +1 -0
- data/lib/tmail/address.rb +6 -40
- data/lib/tmail/attachments.rb +41 -22
- data/lib/tmail/encode.rb +9 -0
- data/lib/tmail/header.rb +5 -3
- data/lib/tmail/interface.rb +40 -3
- data/lib/tmail/mail.rb +3 -3
- data/lib/tmail/mailbox.rb +3 -2
- data/lib/tmail/net.rb +3 -1
- data/lib/tmail/parser.rb +204 -620
- data/lib/tmail/parser.y +38 -3
- data/lib/tmail/quoting.rb +38 -1
- data/lib/tmail/utils.rb +28 -4
- data/lib/tmail/vendor/rchardet-1.3/COPYING +504 -0
- data/lib/tmail/vendor/rchardet-1.3/README +12 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +237 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +90 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +47 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +58 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +166 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
- data/lib/tmail/version.rb +1 -1
- data/setup.rb +2 -2
- data/test/fixtures/apple_unquoted_content_type +44 -0
- data/test/fixtures/inline_attachment.txt +2095 -0
- data/test/fixtures/iso_8859_1_email_without_encoding_and_message_id.txt +16 -0
- data/test/fixtures/mailbox.zip +0 -0
- data/test/fixtures/marked_as_iso_8859_1_but_it_is_utf_8.txt +33 -0
- data/test/fixtures/marked_as_utf_8_but_it_is_iso_8859_1.txt +56 -0
- data/test/fixtures/raw_email_bad_time +62 -0
- data/test/fixtures/raw_email_double_at_in_header +14 -0
- data/test/fixtures/raw_email_only_attachment +17 -0
- data/test/fixtures/raw_email_string_in_date_field +17 -0
- data/test/fixtures/raw_email_trailing_dot +21 -0
- data/test/fixtures/raw_email_with_quoted_attachment_filename +60 -0
- data/test/fixtures/raw_email_with_wrong_splitted_multibyte_encoded_word_subject +15 -0
- data/test/fixtures/the_only_part_is_a_word_document.txt +425 -0
- data/test/fixtures/unquoted_filename_in_attachment +177 -0
- data/test/test_address.rb +114 -92
- data/test/test_attachments.rb +84 -1
- data/test/test_encode.rb +54 -0
- data/test/test_header.rb +60 -2
- data/test/test_mail.rb +22 -15
- data/test/test_mbox.rb +12 -3
- data/test/test_port.rb +13 -9
- data/test/test_quote.rb +9 -0
- data/tmail.gemspec +34 -0
- metadata +68 -167
- data/MANIFEST +0 -191
- data/log/BugTrackingLog.txt +0 -1231
- data/log/Changelog.txt +0 -534
- data/log/Fixme.txt +0 -6
- data/log/Testlog.txt +0 -2340
- data/log/Todo.txt +0 -30
- data/log/fixme.rdoc +0 -6
- data/meta/MANIFEST +0 -128
- data/meta/VERSION +0 -1
- data/meta/project.yaml +0 -30
- data/meta/unixname +0 -1
- data/sample/bench_base64.rb +0 -48
- data/sample/data/multipart +0 -23
- data/sample/data/normal +0 -29
- data/sample/data/sendtest +0 -5
- data/sample/data/simple +0 -14
- data/sample/data/test +0 -27
- data/sample/extract-attachements.rb +0 -33
- data/sample/from-check.rb +0 -26
- data/sample/multipart.rb +0 -26
- data/sample/parse-bench.rb +0 -68
- data/sample/parse-test.rb +0 -19
- data/sample/sendmail.rb +0 -94
- data/site/contributing/index.html +0 -183
- data/site/css/clean.css +0 -27
- data/site/css/layout.css +0 -31
- data/site/css/style.css +0 -60
- data/site/download/index.html +0 -61
- data/site/img/envelope.jpg +0 -0
- data/site/img/mailman.gif +0 -0
- data/site/img/stamp-sm.jpg +0 -0
- data/site/img/stamp.jpg +0 -0
- data/site/img/stampborder.jpg +0 -0
- data/site/img/tfire.jpg +0 -0
- data/site/img/tmail.png +0 -0
- data/site/index.html +0 -270
- data/site/js/jquery.js +0 -31
- data/site/log/Changelog.xsl +0 -33
- data/site/log/changelog.xml +0 -1677
- data/site/outdated/BUGS +0 -3
- data/site/outdated/DEPENDS +0 -1
- data/site/outdated/Incompatibilities +0 -89
- data/site/outdated/Incompatibilities.ja +0 -102
- data/site/outdated/NEWS +0 -9
- data/site/outdated/README.ja +0 -73
- data/site/outdated/doc.ja/address.html +0 -275
- data/site/outdated/doc.ja/basics.html +0 -405
- data/site/outdated/doc.ja/config.html +0 -49
- data/site/outdated/doc.ja/details.html +0 -146
- data/site/outdated/doc.ja/index.html +0 -39
- data/site/outdated/doc.ja/mail.html +0 -793
- data/site/outdated/doc.ja/mailbox.html +0 -265
- data/site/outdated/doc.ja/port.html +0 -95
- data/site/outdated/doc.ja/tmail.html +0 -58
- data/site/outdated/doc.ja/usage.html +0 -202
- data/site/outdated/rdd/address.rrd.m +0 -229
- data/site/outdated/rdd/basics.rd.m +0 -275
- data/site/outdated/rdd/config.rrd.m +0 -26
- data/site/outdated/rdd/details.rd.m +0 -117
- data/site/outdated/rdd/index.rhtml.m +0 -54
- data/site/outdated/rdd/mail.rrd.m +0 -701
- data/site/outdated/rdd/mailbox.rrd.m +0 -228
- data/site/outdated/rdd/port.rrd.m +0 -69
- data/site/outdated/rdd/tmail.rrd.m +0 -33
- data/site/outdated/rdd/usage.rd.m +0 -247
- data/site/quickstart/index.html +0 -69
- data/site/quickstart/quickstart.html +0 -52
- data/site/quickstart/usage.html +0 -193
- data/site/reference/address.html +0 -247
- data/site/reference/config.html +0 -30
- data/site/reference/index.html +0 -101
- data/site/reference/mail.html +0 -726
- data/site/reference/mailbox.html +0 -245
- data/site/reference/port.html +0 -75
- data/site/reference/tmail.html +0 -35
- data/work/script/make +0 -26
- data/work/script/rdoc +0 -39
- data/work/script/setup +0 -1616
- data/work/script/test +0 -30
data/test/test_encode.rb
CHANGED
@@ -65,12 +65,14 @@ class TestEncode < Test::Unit::TestCase
|
|
65
65
|
"=?iso-2022-jp?B?YRskQiQiGyhCYSBhGyRCJCIbKEJhIGEbJEIkIhsoQmEgYRskQiQiGyhCYSBh?=\r\n\t=?iso-2022-jp?B?GyRCJCIbKEJhIGEbJEIkIhsoQmE=?=" #26
|
66
66
|
]
|
67
67
|
|
68
|
+
unless RUBY_VERSION.match(/1.9/)
|
68
69
|
def test_s_encode
|
69
70
|
SRCS.each_index do |i|
|
70
71
|
assert_equal crlf(OK[i]),
|
71
72
|
TMail::Encoder.encode(NKF.nkf('-j', SRCS[i]))
|
72
73
|
end
|
73
74
|
end
|
75
|
+
end
|
74
76
|
|
75
77
|
def crlf( str )
|
76
78
|
str.gsub(/\n|\r\n|\r/) { "\r\n" }
|
@@ -82,4 +84,56 @@ class TestEncode < Test::Unit::TestCase
|
|
82
84
|
assert_nothing_raised(Exception) { mail.encoded }
|
83
85
|
end
|
84
86
|
|
87
|
+
# =?utf-8?Q? Nicolas=20Fouch=E9?= is not UTF-8, it's ISO-8859-1 !
|
88
|
+
def test_marked_as_utf_8_but_it_is_iso_8859_1
|
89
|
+
mail = load_fixture('marked_as_utf_8_but_it_is_iso_8859_1.txt')
|
90
|
+
|
91
|
+
name = mail.to_addrs.first.name
|
92
|
+
assert_equal ' Nicolas Fouché', TMail::Unquoter.unquote_and_convert_to(name, 'utf-8')
|
93
|
+
|
94
|
+
# Without the patch, TMail raises:
|
95
|
+
# Iconv::InvalidCharacter: "\351"
|
96
|
+
# method iconv in quoting.rb at line 99
|
97
|
+
# method convert_to in quoting.rb at line 99
|
98
|
+
# method unquote_quoted_printable_and_convert_to in quoting.rb at line 88
|
99
|
+
# method unquote_and_convert_to in quoting.rb at line 72
|
100
|
+
# method gsub in quoting.rb at line 63
|
101
|
+
# method unquote_and_convert_to in quoting.rb at line 63
|
102
|
+
end
|
103
|
+
|
104
|
+
# =?iso-8859-1?b?77y5772B772O772Q772J772O772HIA==?= =?iso-8859-1?b?77y377yh77yu77yn?= is not ISO-8859-1, it's UTF-8 !
|
105
|
+
def test_marked_as_iso_8859_1_but_it_is_utf_8
|
106
|
+
mail = load_fixture('marked_as_iso_8859_1_but_it_is_utf_8.txt')
|
107
|
+
|
108
|
+
name = mail.to_addrs.first.name
|
109
|
+
assert_equal 'Yanping WANG', TMail::Unquoter.unquote_and_convert_to(name, 'utf-8')
|
110
|
+
# Even GMail could not detect this one :)
|
111
|
+
|
112
|
+
# Without the patch, TMail returns: "ï¼¹ï½ï½ï½ï½ï½ï½ WANG"
|
113
|
+
end
|
114
|
+
|
115
|
+
# Be sure not to copy/paste the content of the fixture to another file, it could be automatically converted to utf-8
|
116
|
+
def test_iso_8859_1_email_without_encoding_and_message_id
|
117
|
+
mail = load_fixture('iso_8859_1_email_without_encoding_and_message_id.txt')
|
118
|
+
|
119
|
+
text = TMail::Unquoter.unquote_and_convert_to(mail.body, 'utf-8')
|
120
|
+
|
121
|
+
assert(text.include?('é'), 'Text content should include the "é" character')
|
122
|
+
|
123
|
+
# I'm not very proud of this one, chardet detects iso-8859-2, so I have to force the encoding to iso-8859-1.
|
124
|
+
assert(!text.include?('ŕ'), 'Text content should not iso-8859-2, "ŕ" should be "à"')
|
125
|
+
|
126
|
+
# Without the patch, TMail::Unquoter.unquote_and_convert_to returns:
|
127
|
+
# Il semblerait que vous n'ayez pas consult� votre messagerie depuis plus
|
128
|
+
# d'un an. Aussi, celle-ci a �t� temporairement desactiv�e.
|
129
|
+
# Aucune demande n'est necessaire pour r�activer votre messagerie : la simple
|
130
|
+
# consultation de ce message indique que la boite est � nouveau utilisable.
|
131
|
+
end
|
132
|
+
|
133
|
+
protected
|
134
|
+
|
135
|
+
def load_fixture(name)
|
136
|
+
TMail::Mail.load(File.join('test', 'fixtures', name))
|
137
|
+
end
|
138
|
+
|
85
139
|
end
|
data/test/test_header.rb
CHANGED
@@ -244,6 +244,14 @@ class MessageIdHeaderTester < Test::Unit::TestCase
|
|
244
244
|
end
|
245
245
|
end
|
246
246
|
|
247
|
+
def test_message_id_double_at
|
248
|
+
%w( Message-Id MESSAGE-ID Message-ID
|
249
|
+
Resent-Message-Id Content-Id ).each do |name|
|
250
|
+
h = TMail::HeaderField.new(name, '<20020103xg88.k0@mail@me.loveruby.net>')
|
251
|
+
assert_instance_of TMail::MessageIdHeader, h
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
247
255
|
def test_id
|
248
256
|
str = '<20020103xg88.k0@mail.loveruby.net>'
|
249
257
|
h = TMail::HeaderField.new('Message-Id', str)
|
@@ -263,6 +271,13 @@ class MessageIdHeaderTester < Test::Unit::TestCase
|
|
263
271
|
assert_not_nil h.id
|
264
272
|
assert_equal str, h.id
|
265
273
|
end
|
274
|
+
|
275
|
+
def test_double_at_in_header
|
276
|
+
fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email_double_at_in_header")
|
277
|
+
str = '<d3b8cf8e49f0448085@0c28713a1@f473e@37signals.com>'
|
278
|
+
mail = TMail::Mail.parse(fixture)
|
279
|
+
assert_equal str, mail.message_id
|
280
|
+
end
|
266
281
|
end
|
267
282
|
|
268
283
|
class ReferencesHeaderTester < Test::Unit::TestCase
|
@@ -755,8 +770,8 @@ class ContentDispositionHeaderTester < Test::Unit::TestCase
|
|
755
770
|
#_test_rfc2231_encode
|
756
771
|
_test_raw_iso2022jp
|
757
772
|
_test_raw_eucjp
|
758
|
-
_test_raw_sjis
|
759
|
-
_test_code_conversion
|
773
|
+
_test_raw_sjis unless RUBY_VERSION.match(/1.9/)
|
774
|
+
_test_code_conversion unless RUBY_VERSION.match(/1.9/)
|
760
775
|
ensure
|
761
776
|
TMail.KCODE = 'NONE'
|
762
777
|
end
|
@@ -959,5 +974,48 @@ class ContentDispositionHeaderTester < Test::Unit::TestCase
|
|
959
974
|
h = TMail::HeaderField.new_from_port(p, 'Received-Long-Header')
|
960
975
|
assert_equal(h, nil)
|
961
976
|
end
|
977
|
+
|
978
|
+
def test_multi_address_header_in_tmail
|
979
|
+
h = TMail::Mail.new
|
980
|
+
h.to = "Mikel@me.com, mikel@you.com"
|
981
|
+
assert_equal("To: Mikel@me.com,\r\n\t mikel@you.com\r\n\r\n", h.encoded)
|
982
|
+
end
|
983
|
+
|
984
|
+
def test_adding_custom_message_id
|
985
|
+
fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email")
|
986
|
+
mail = TMail::Mail.parse(fixture)
|
987
|
+
message_id = "<12345@me.com>"
|
988
|
+
mail.enforced_message_id = message_id
|
989
|
+
mail.ready_to_send
|
990
|
+
assert_equal(message_id, mail.message_id)
|
991
|
+
end
|
992
|
+
|
993
|
+
def test_not_adding_custom_message_id
|
994
|
+
fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email")
|
995
|
+
mail = TMail::Mail.parse(fixture)
|
996
|
+
message_id = mail.message_id
|
997
|
+
mail.message_id = "<12345@me.com>"
|
998
|
+
mail.ready_to_send
|
999
|
+
assert_not_equal(message_id, mail.message_id)
|
1000
|
+
end
|
1001
|
+
|
1002
|
+
def test_content_type_does_not_unquote_parameter_values
|
1003
|
+
japanese_jis_filename = "¥e$B4A;z¥e(B.jpg"
|
1004
|
+
mailsrc =<<ENDSTRING
|
1005
|
+
Content-Type: image/jpeg;
|
1006
|
+
name="#{japanese_jis_filename}"
|
1007
|
+
Content-Transfer-Encoding: Base64
|
1008
|
+
Content-Disposition: attachment
|
1009
|
+
ENDSTRING
|
1010
|
+
result =<<ENDSTRING
|
1011
|
+
Content-Type: image/jpeg; name*=iso-2022-jp'ja'%c2%a5e$B4A%3bz%c2%a5e%28B.jpg
|
1012
|
+
Content-Transfer-Encoding: Base64
|
1013
|
+
Content-Disposition: attachment
|
1014
|
+
|
1015
|
+
ENDSTRING
|
1016
|
+
|
1017
|
+
mail = TMail::Mail.parse(mailsrc)
|
1018
|
+
assert_equal(result.gsub("\n", "\r\n"), mail.encoded)
|
1019
|
+
end
|
962
1020
|
|
963
1021
|
end
|
data/test/test_mail.rb
CHANGED
@@ -416,6 +416,22 @@ EOF
|
|
416
416
|
assert_equal "VGhlIGJvZHk=", mail.quoted_body.strip
|
417
417
|
end
|
418
418
|
|
419
|
+
def test_unquote_base64_body_with_invalid_charset
|
420
|
+
msg = <<EOF
|
421
|
+
From: "2009-07-02 21:53:01" <sender@example.com>
|
422
|
+
Subject: unqoute base64 body with invalid charset
|
423
|
+
MIME-Version: 1.0
|
424
|
+
charset="gb2312"
|
425
|
+
Content-Transfer-Encoding: base64
|
426
|
+
|
427
|
+
RGVhciBTaXJzLCANCldlIGFyZSBnaXZlbiB0byB1bmRlcnN0YW5kIHRoYXQg
|
428
|
+
eW91IGFyZSAgTWFudWZhY3R1cmVyIG9mICBwbHN0aWMgIEJvdHRsZXMNCkFk
|
429
|
+
ZKO6IGJsYWggQ2hpbmE=
|
430
|
+
EOF
|
431
|
+
mail = TMail::Mail.parse(msg)
|
432
|
+
assert_equal "Dear Sirs, \r\nWe are given to understand that you are Manufacturer of plstic Bottles\r\nAdd: blah China", mail.body.strip
|
433
|
+
end
|
434
|
+
|
419
435
|
def test_message_id
|
420
436
|
assert_nil @mail.message_id
|
421
437
|
assert_equal 1, @mail.message_id(1)
|
@@ -423,6 +439,9 @@ EOF
|
|
423
439
|
m = '<very.unique.identity@fully.quorified.domain.name>'
|
424
440
|
@mail.message_id = m
|
425
441
|
assert_equal m, @mail.message_id
|
442
|
+
|
443
|
+
@mail.message_id = 'this_is_my_badly_formatted_message_id'
|
444
|
+
assert_equal nil, @mail.message_id
|
426
445
|
end
|
427
446
|
|
428
447
|
def test_in_reply_to
|
@@ -498,7 +517,7 @@ EOF
|
|
498
517
|
output = <<EOF
|
499
518
|
From: mikel@example.com
|
500
519
|
Subject: Hello
|
501
|
-
#{if RUBY_VERSION < '1.
|
520
|
+
#{if RUBY_VERSION < '1.8.7'
|
502
521
|
'Content-Type: multipart/signed; protocol="application/pkcs7-signature"; boundary=Apple-Mail-42-587703407; micalg=sha1'
|
503
522
|
else
|
504
523
|
'Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-42-587703407; protocol="application/pkcs7-signature"'
|
@@ -731,19 +750,7 @@ EOF
|
|
731
750
|
part = TMail::Mail.parse("Content-Type: text/plain\n\nBlah")
|
732
751
|
mail.parts << part
|
733
752
|
mail.preamble = 'This is the preamble'
|
734
|
-
|
735
|
-
str = mail.encoded
|
736
|
-
result = str.gsub(str[/boundary="(.*?)"/, 1], 'boundary')
|
737
|
-
expected =<<EOF
|
738
|
-
Content-Type: multipart/mixed; boundary="boundary"
|
739
|
-
|
740
|
-
This is the preamble
|
741
|
-
--boundary
|
742
|
-
Content-Type: text/plain
|
743
|
-
|
744
|
-
Blah
|
745
|
-
--boundary--
|
746
|
-
EOF
|
747
|
-
assert_equal(crlf(expected), result)
|
753
|
+
assert(mail.encoded =~ /\r\n\r\nThis is the preamble\r\n--mimepart/)
|
748
754
|
end
|
755
|
+
|
749
756
|
end
|
data/test/test_mbox.rb
CHANGED
@@ -9,8 +9,8 @@ class MailboxTester < Test::Unit::TestCase
|
|
9
9
|
N = 5
|
10
10
|
|
11
11
|
def setup
|
12
|
-
rm_rf
|
13
|
-
mkdir
|
12
|
+
rm_rf(MAILBOX, :verbose => false)
|
13
|
+
mkdir(MAILBOX, :verbose => false)
|
14
14
|
N.downto(1) do |i|
|
15
15
|
File.open( "#{MAILBOX}/#{i}", 'w' ) {|f|
|
16
16
|
f.puts 'From: aamine'
|
@@ -35,7 +35,7 @@ class MailboxTester < Test::Unit::TestCase
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def teardown
|
38
|
-
rm_rf
|
38
|
+
rm_rf(MAILBOX, :verbose => false)
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_s_new
|
@@ -172,4 +172,13 @@ class MailboxTester < Test::Unit::TestCase
|
|
172
172
|
File.delete(filename)
|
173
173
|
end
|
174
174
|
|
175
|
+
def test_fromline2time_should_return_nil_on_out_of_range_dates
|
176
|
+
filename = "#{File.dirname(__FILE__)}/fixtures/mailbox"
|
177
|
+
FileUtils.copy(filename, "#{filename}_test")
|
178
|
+
filename = "#{filename}_test"
|
179
|
+
line = "From mikel mikel March 24 01:02:03 1900"
|
180
|
+
mailbox = TMail::UNIXMbox.new(filename, nil, false)
|
181
|
+
assert_equal(nil, mailbox.send(:fromline2time, line))
|
182
|
+
end
|
183
|
+
|
175
184
|
end
|
data/test/test_port.rb
CHANGED
@@ -7,8 +7,8 @@ class FilePortTester < Test::Unit::TestCase
|
|
7
7
|
include FileUtils
|
8
8
|
|
9
9
|
def setup
|
10
|
-
rm_rf
|
11
|
-
mkdir
|
10
|
+
rm_rf('tmp', :verbose => false)
|
11
|
+
mkdir('tmp', :verbose => false)
|
12
12
|
5.times do |n|
|
13
13
|
File.open('tmp/' + n.to_s, 'w') {|f|
|
14
14
|
f.puts "file #{n}"
|
@@ -17,7 +17,7 @@ class FilePortTester < Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def teardown
|
20
|
-
rm_rf
|
20
|
+
rm_rf('tmp', :verbose => false)
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_s_new
|
@@ -336,8 +336,9 @@ class MhPortTester < Test::Unit::TestCase
|
|
336
336
|
include FileUtils
|
337
337
|
|
338
338
|
def setup
|
339
|
-
rm_rf
|
340
|
-
|
339
|
+
rm_rf('tmp', :verbose => false)
|
340
|
+
|
341
|
+
mkdir('tmp', :verbose => false)
|
341
342
|
3.times do |n|
|
342
343
|
File.open( "tmp/#{n}", 'w' ) {|f|
|
343
344
|
f.puts 'From: Minero Aoki <aamine@loveruby.net>'
|
@@ -349,7 +350,8 @@ class MhPortTester < Test::Unit::TestCase
|
|
349
350
|
end
|
350
351
|
|
351
352
|
def teardown
|
352
|
-
rm_rf
|
353
|
+
rm_rf('tmp', :verbose => false)
|
354
|
+
|
353
355
|
end
|
354
356
|
|
355
357
|
def test_flags
|
@@ -387,8 +389,9 @@ class MaildirPortTester < Test::Unit::TestCase
|
|
387
389
|
include FileUtils
|
388
390
|
|
389
391
|
def setup
|
390
|
-
rm_rf
|
391
|
-
|
392
|
+
rm_rf('tmp', :verbose => false)
|
393
|
+
|
394
|
+
mkdir('tmp', :verbose => false)
|
392
395
|
3.times do |n|
|
393
396
|
File.open( "tmp/000.00#{n}.a", 'w' ) {|f|
|
394
397
|
f.puts 'From: Minero Aoki <aamine@loveruby.net>'
|
@@ -400,7 +403,8 @@ class MaildirPortTester < Test::Unit::TestCase
|
|
400
403
|
end
|
401
404
|
|
402
405
|
def teardown
|
403
|
-
rm_rf
|
406
|
+
rm_rf('tmp', :verbose => false)
|
407
|
+
|
404
408
|
end
|
405
409
|
|
406
410
|
def test_flags
|
data/test/test_quote.rb
CHANGED
@@ -33,6 +33,15 @@ class TestQuote < Test::Unit::TestCase
|
|
33
33
|
expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
|
34
34
|
assert_equal expected, b
|
35
35
|
end
|
36
|
+
|
37
|
+
# See section 8 of http://www.faqs.org/rfcs/rfc2047.html
|
38
|
+
def test_unquote_multiple_separated_by_whitespace
|
39
|
+
a ="=?utf-8?Q?hello?= =?utf-8?Q?there?="
|
40
|
+
b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
|
41
|
+
expected = "hellothere"
|
42
|
+
expected.force_encoding 'utf-8' if expected.respond_to? :force_encoding
|
43
|
+
assert_equal expected, b
|
44
|
+
end
|
36
45
|
|
37
46
|
def test_unqoute_in_the_middle
|
38
47
|
a ="Re: Photos =?ISO-8859-1?Q?Brosch=FCre_Rand?="
|
data/tmail.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{tmail}
|
5
|
+
s.version = "1.2.6"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Mikel Lindsaar <raasdnil AT gmail.com>"]
|
9
|
+
s.date = %q{2010-01-06}
|
10
|
+
s.description = %q{TMail is a Ruby-based mail handler. It allows you to compose stadards compliant emails in a very Ruby-way.}
|
11
|
+
s.email = %q{raasdnil AT gmail.com}
|
12
|
+
s.extensions = ["ext/tmailscanner/tmail/extconf.rb"]
|
13
|
+
s.extra_rdoc_files = ["README", "CHANGES", "LICENSE", "NOTES", "Rakefile"]
|
14
|
+
s.files = %w(README Rakefile NOTES CHANGES LICENSE setup.rb tmail.gemspec) +
|
15
|
+
Dir.glob("lib/**/*") + Dir.glob("ext/**/*")
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{http://tmail.rubyforge.org}
|
18
|
+
s.rdoc_options = ["--inline-source", "--title", "TMail", "--main", "README"]
|
19
|
+
s.require_paths = ["lib", "ext/tmailscanner"]
|
20
|
+
s.rubyforge_project = %q{tmail}
|
21
|
+
s.rubygems_version = %q{1.3.1}
|
22
|
+
s.summary = %q{Ruby Mail Handler}
|
23
|
+
s.test_files = Dir.glob("test/**/*")
|
24
|
+
|
25
|
+
if s.respond_to? :specification_version then
|
26
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
+
s.specification_version = 2
|
28
|
+
|
29
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
|
+
else
|
31
|
+
end
|
32
|
+
else
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tmail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikel Lindsaar <raasdnil AT gmail.com>
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-06 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -23,22 +23,16 @@ extra_rdoc_files:
|
|
23
23
|
- README
|
24
24
|
- CHANGES
|
25
25
|
- LICENSE
|
26
|
-
- MANIFEST
|
27
26
|
- NOTES
|
28
27
|
- Rakefile
|
29
28
|
files:
|
29
|
+
- README
|
30
|
+
- Rakefile
|
31
|
+
- NOTES
|
30
32
|
- CHANGES
|
31
|
-
-
|
32
|
-
-
|
33
|
-
-
|
34
|
-
- ext/tmailscanner
|
35
|
-
- ext/tmailscanner/tmail
|
36
|
-
- ext/tmailscanner/tmail/depend
|
37
|
-
- ext/tmailscanner/tmail/extconf.rb
|
38
|
-
- ext/tmailscanner/tmail/MANIFEST
|
39
|
-
- ext/tmailscanner/tmail/tmailscanner.c
|
40
|
-
- lib
|
41
|
-
- lib/tmail
|
33
|
+
- LICENSE
|
34
|
+
- setup.rb
|
35
|
+
- tmail.gemspec
|
42
36
|
- lib/tmail/address.rb
|
43
37
|
- lib/tmail/attachments.rb
|
44
38
|
- lib/tmail/base64.rb
|
@@ -66,161 +60,54 @@ files:
|
|
66
60
|
- lib/tmail/scanner_r.rb
|
67
61
|
- lib/tmail/stringio.rb
|
68
62
|
- lib/tmail/utils.rb
|
63
|
+
- lib/tmail/vendor/rchardet-1.3/COPYING
|
64
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb
|
65
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb
|
66
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb
|
67
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb
|
68
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb
|
69
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb
|
70
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb
|
71
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb
|
72
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb
|
73
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb
|
74
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb
|
75
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb
|
76
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb
|
77
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb
|
78
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb
|
79
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb
|
80
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb
|
81
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb
|
82
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb
|
83
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb
|
84
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb
|
85
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb
|
86
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb
|
87
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb
|
88
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb
|
89
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb
|
90
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb
|
91
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb
|
92
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb
|
93
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb
|
94
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb
|
95
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb
|
96
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb
|
97
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb
|
98
|
+
- lib/tmail/vendor/rchardet-1.3/lib/rchardet.rb
|
99
|
+
- lib/tmail/vendor/rchardet-1.3/README
|
69
100
|
- lib/tmail/version.rb
|
70
101
|
- lib/tmail.rb
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
- log/Fixme.txt
|
77
|
-
- log/Testlog.txt
|
78
|
-
- log/Todo.txt
|
79
|
-
- meta
|
80
|
-
- meta/MANIFEST
|
81
|
-
- meta/project.yaml
|
82
|
-
- meta/unixname
|
83
|
-
- meta/VERSION
|
84
|
-
- NOTES
|
85
|
-
- Rakefile
|
86
|
-
- README
|
87
|
-
- sample
|
88
|
-
- sample/bench_base64.rb
|
89
|
-
- sample/data
|
90
|
-
- sample/data/multipart
|
91
|
-
- sample/data/normal
|
92
|
-
- sample/data/sendtest
|
93
|
-
- sample/data/simple
|
94
|
-
- sample/data/test
|
95
|
-
- sample/extract-attachements.rb
|
96
|
-
- sample/from-check.rb
|
97
|
-
- sample/multipart.rb
|
98
|
-
- sample/parse-bench.rb
|
99
|
-
- sample/parse-test.rb
|
100
|
-
- sample/sendmail.rb
|
101
|
-
- setup.rb
|
102
|
-
- site
|
103
|
-
- site/contributing
|
104
|
-
- site/contributing/index.html
|
105
|
-
- site/css
|
106
|
-
- site/css/clean.css
|
107
|
-
- site/css/layout.css
|
108
|
-
- site/css/style.css
|
109
|
-
- site/download
|
110
|
-
- site/download/index.html
|
111
|
-
- site/img
|
112
|
-
- site/img/envelope.jpg
|
113
|
-
- site/img/mailman.gif
|
114
|
-
- site/img/stamp-sm.jpg
|
115
|
-
- site/img/stamp.jpg
|
116
|
-
- site/img/stampborder.jpg
|
117
|
-
- site/img/tfire.jpg
|
118
|
-
- site/img/tmail.png
|
119
|
-
- site/index.html
|
120
|
-
- site/js
|
121
|
-
- site/js/jquery.js
|
122
|
-
- site/log
|
123
|
-
- site/log/changelog.xml
|
124
|
-
- site/log/Changelog.xsl
|
125
|
-
- site/outdated
|
126
|
-
- site/outdated/BUGS
|
127
|
-
- site/outdated/DEPENDS
|
128
|
-
- site/outdated/doc.ja
|
129
|
-
- site/outdated/doc.ja/address.html
|
130
|
-
- site/outdated/doc.ja/basics.html
|
131
|
-
- site/outdated/doc.ja/config.html
|
132
|
-
- site/outdated/doc.ja/details.html
|
133
|
-
- site/outdated/doc.ja/index.html
|
134
|
-
- site/outdated/doc.ja/mail.html
|
135
|
-
- site/outdated/doc.ja/mailbox.html
|
136
|
-
- site/outdated/doc.ja/port.html
|
137
|
-
- site/outdated/doc.ja/tmail.html
|
138
|
-
- site/outdated/doc.ja/usage.html
|
139
|
-
- site/outdated/Incompatibilities
|
140
|
-
- site/outdated/Incompatibilities.ja
|
141
|
-
- site/outdated/NEWS
|
142
|
-
- site/outdated/rdd
|
143
|
-
- site/outdated/rdd/address.rrd.m
|
144
|
-
- site/outdated/rdd/basics.rd.m
|
145
|
-
- site/outdated/rdd/config.rrd.m
|
146
|
-
- site/outdated/rdd/details.rd.m
|
147
|
-
- site/outdated/rdd/index.rhtml.m
|
148
|
-
- site/outdated/rdd/mail.rrd.m
|
149
|
-
- site/outdated/rdd/mailbox.rrd.m
|
150
|
-
- site/outdated/rdd/port.rrd.m
|
151
|
-
- site/outdated/rdd/tmail.rrd.m
|
152
|
-
- site/outdated/rdd/usage.rd.m
|
153
|
-
- site/outdated/README.ja
|
154
|
-
- site/quickstart
|
155
|
-
- site/quickstart/index.html
|
156
|
-
- site/quickstart/quickstart.html
|
157
|
-
- site/quickstart/usage.html
|
158
|
-
- site/reference
|
159
|
-
- site/reference/address.html
|
160
|
-
- site/reference/config.html
|
161
|
-
- site/reference/index.html
|
162
|
-
- site/reference/mail.html
|
163
|
-
- site/reference/mailbox.html
|
164
|
-
- site/reference/port.html
|
165
|
-
- site/reference/tmail.html
|
166
|
-
- test
|
167
|
-
- test/extctrl.rb
|
168
|
-
- test/fixtures
|
169
|
-
- test/fixtures/mailbox
|
170
|
-
- test/fixtures/mailbox_without_any_from_or_sender
|
171
|
-
- test/fixtures/mailbox_without_from
|
172
|
-
- test/fixtures/mailbox_without_return_path
|
173
|
-
- test/fixtures/raw_attack_email_with_zero_length_whitespace
|
174
|
-
- test/fixtures/raw_base64_decoded_string
|
175
|
-
- test/fixtures/raw_base64_email
|
176
|
-
- test/fixtures/raw_base64_encoded_string
|
177
|
-
- test/fixtures/raw_email
|
178
|
-
- test/fixtures/raw_email10
|
179
|
-
- test/fixtures/raw_email11
|
180
|
-
- test/fixtures/raw_email12
|
181
|
-
- test/fixtures/raw_email13
|
182
|
-
- test/fixtures/raw_email2
|
183
|
-
- test/fixtures/raw_email3
|
184
|
-
- test/fixtures/raw_email4
|
185
|
-
- test/fixtures/raw_email5
|
186
|
-
- test/fixtures/raw_email6
|
187
|
-
- test/fixtures/raw_email7
|
188
|
-
- test/fixtures/raw_email8
|
189
|
-
- test/fixtures/raw_email9
|
190
|
-
- test/fixtures/raw_email_multiple_from
|
191
|
-
- test/fixtures/raw_email_quoted_with_0d0a
|
192
|
-
- test/fixtures/raw_email_reply
|
193
|
-
- test/fixtures/raw_email_simple
|
194
|
-
- test/fixtures/raw_email_with_bad_date
|
195
|
-
- test/fixtures/raw_email_with_illegal_boundary
|
196
|
-
- test/fixtures/raw_email_with_mimepart_without_content_type
|
197
|
-
- test/fixtures/raw_email_with_multipart_mixed_quoted_boundary
|
198
|
-
- test/fixtures/raw_email_with_nested_attachment
|
199
|
-
- test/fixtures/raw_email_with_partially_quoted_subject
|
200
|
-
- test/fixtures/raw_email_with_quoted_illegal_boundary
|
201
|
-
- test/kcode.rb
|
202
|
-
- test/temp_test_one.rb
|
203
|
-
- test/test_address.rb
|
204
|
-
- test/test_attachments.rb
|
205
|
-
- test/test_base64.rb
|
206
|
-
- test/test_encode.rb
|
207
|
-
- test/test_header.rb
|
208
|
-
- test/test_helper.rb
|
209
|
-
- test/test_mail.rb
|
210
|
-
- test/test_mbox.rb
|
211
|
-
- test/test_port.rb
|
212
|
-
- test/test_quote.rb
|
213
|
-
- test/test_scanner.rb
|
214
|
-
- test/test_utils.rb
|
215
|
-
- work
|
216
|
-
- work/script
|
217
|
-
- work/script/make
|
218
|
-
- work/script/rdoc
|
219
|
-
- work/script/setup
|
220
|
-
- work/script/test
|
221
|
-
- MANIFEST
|
102
|
+
- ext/Makefile
|
103
|
+
- ext/tmailscanner/tmail/depend
|
104
|
+
- ext/tmailscanner/tmail/extconf.rb
|
105
|
+
- ext/tmailscanner/tmail/MANIFEST
|
106
|
+
- ext/tmailscanner/tmail/tmailscanner.c
|
222
107
|
has_rdoc: true
|
223
108
|
homepage: http://tmail.rubyforge.org
|
109
|
+
licenses: []
|
110
|
+
|
224
111
|
post_install_message:
|
225
112
|
rdoc_options:
|
226
113
|
- --inline-source
|
@@ -246,17 +133,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
133
|
requirements: []
|
247
134
|
|
248
135
|
rubyforge_project: tmail
|
249
|
-
rubygems_version: 1.
|
136
|
+
rubygems_version: 1.3.5
|
250
137
|
signing_key:
|
251
138
|
specification_version: 2
|
252
139
|
summary: Ruby Mail Handler
|
253
140
|
test_files:
|
254
141
|
- test/extctrl.rb
|
255
|
-
- test/fixtures
|
142
|
+
- test/fixtures/apple_unquoted_content_type
|
143
|
+
- test/fixtures/inline_attachment.txt
|
144
|
+
- test/fixtures/iso_8859_1_email_without_encoding_and_message_id.txt
|
256
145
|
- test/fixtures/mailbox
|
146
|
+
- test/fixtures/mailbox.zip
|
257
147
|
- test/fixtures/mailbox_without_any_from_or_sender
|
258
148
|
- test/fixtures/mailbox_without_from
|
259
149
|
- test/fixtures/mailbox_without_return_path
|
150
|
+
- test/fixtures/marked_as_iso_8859_1_but_it_is_utf_8.txt
|
151
|
+
- test/fixtures/marked_as_utf_8_but_it_is_iso_8859_1.txt
|
260
152
|
- test/fixtures/raw_attack_email_with_zero_length_whitespace
|
261
153
|
- test/fixtures/raw_base64_decoded_string
|
262
154
|
- test/fixtures/raw_base64_email
|
@@ -274,17 +166,26 @@ test_files:
|
|
274
166
|
- test/fixtures/raw_email7
|
275
167
|
- test/fixtures/raw_email8
|
276
168
|
- test/fixtures/raw_email9
|
169
|
+
- test/fixtures/raw_email_bad_time
|
170
|
+
- test/fixtures/raw_email_double_at_in_header
|
277
171
|
- test/fixtures/raw_email_multiple_from
|
172
|
+
- test/fixtures/raw_email_only_attachment
|
278
173
|
- test/fixtures/raw_email_quoted_with_0d0a
|
279
174
|
- test/fixtures/raw_email_reply
|
280
175
|
- test/fixtures/raw_email_simple
|
176
|
+
- test/fixtures/raw_email_string_in_date_field
|
177
|
+
- test/fixtures/raw_email_trailing_dot
|
281
178
|
- test/fixtures/raw_email_with_bad_date
|
282
179
|
- test/fixtures/raw_email_with_illegal_boundary
|
283
180
|
- test/fixtures/raw_email_with_mimepart_without_content_type
|
284
181
|
- test/fixtures/raw_email_with_multipart_mixed_quoted_boundary
|
285
182
|
- test/fixtures/raw_email_with_nested_attachment
|
286
183
|
- test/fixtures/raw_email_with_partially_quoted_subject
|
184
|
+
- test/fixtures/raw_email_with_quoted_attachment_filename
|
287
185
|
- test/fixtures/raw_email_with_quoted_illegal_boundary
|
186
|
+
- test/fixtures/raw_email_with_wrong_splitted_multibyte_encoded_word_subject
|
187
|
+
- test/fixtures/the_only_part_is_a_word_document.txt
|
188
|
+
- test/fixtures/unquoted_filename_in_attachment
|
288
189
|
- test/kcode.rb
|
289
190
|
- test/temp_test_one.rb
|
290
191
|
- test/test_address.rb
|