tmail_es 1.2.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGES +83 -0
- data/LICENSE +21 -0
- data/NOTES +7 -0
- data/README +182 -0
- data/Rakefile +2 -0
- data/ext/Makefile +20 -0
- data/ext/tmailscanner/tmail/MANIFEST +4 -0
- data/ext/tmailscanner/tmail/depend +1 -0
- data/ext/tmailscanner/tmail/extconf.rb +33 -0
- data/ext/tmailscanner/tmail/tmailscanner.c +614 -0
- data/lib/tmail/Makefile +18 -0
- data/lib/tmail/address.rb +392 -0
- data/lib/tmail/attachments.rb +65 -0
- data/lib/tmail/base64.rb +46 -0
- data/lib/tmail/compat.rb +41 -0
- data/lib/tmail/config.rb +67 -0
- data/lib/tmail/core_extensions.rb +63 -0
- data/lib/tmail/encode.rb +590 -0
- data/lib/tmail/header.rb +962 -0
- data/lib/tmail/index.rb +9 -0
- data/lib/tmail/interface.rb +1162 -0
- data/lib/tmail/loader.rb +3 -0
- data/lib/tmail/mail.rb +578 -0
- data/lib/tmail/mailbox.rb +496 -0
- data/lib/tmail/main.rb +6 -0
- data/lib/tmail/mbox.rb +3 -0
- data/lib/tmail/net.rb +250 -0
- data/lib/tmail/obsolete.rb +132 -0
- data/lib/tmail/parser.rb +1060 -0
- data/lib/tmail/parser.y +416 -0
- data/lib/tmail/port.rb +379 -0
- data/lib/tmail/quoting.rb +164 -0
- data/lib/tmail/require_arch.rb +58 -0
- data/lib/tmail/scanner.rb +49 -0
- data/lib/tmail/scanner_r.rb +261 -0
- data/lib/tmail/stringio.rb +280 -0
- data/lib/tmail/utils.rb +361 -0
- 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/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 +238 -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 +89 -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 +45 -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 +56 -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 +167 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
- data/lib/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
- data/lib/tmail/version.rb +40 -0
- data/lib/tmail.rb +6 -0
- data/setup.rb +1482 -0
- data/test/extctrl.rb +6 -0
- 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 +414 -0
- data/test/fixtures/mailbox.zip +0 -0
- data/test/fixtures/mailbox_without_any_from_or_sender +10 -0
- data/test/fixtures/mailbox_without_from +11 -0
- data/test/fixtures/mailbox_without_return_path +12 -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_attack_email_with_zero_length_whitespace +29 -0
- data/test/fixtures/raw_base64_decoded_string +0 -0
- data/test/fixtures/raw_base64_email +83 -0
- data/test/fixtures/raw_base64_encoded_string +1 -0
- data/test/fixtures/raw_email +14 -0
- data/test/fixtures/raw_email10 +20 -0
- data/test/fixtures/raw_email11 +34 -0
- data/test/fixtures/raw_email12 +32 -0
- data/test/fixtures/raw_email13 +29 -0
- data/test/fixtures/raw_email2 +114 -0
- data/test/fixtures/raw_email3 +70 -0
- data/test/fixtures/raw_email4 +59 -0
- data/test/fixtures/raw_email5 +19 -0
- data/test/fixtures/raw_email6 +20 -0
- data/test/fixtures/raw_email7 +66 -0
- data/test/fixtures/raw_email8 +47 -0
- data/test/fixtures/raw_email9 +28 -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_multiple_from +30 -0
- data/test/fixtures/raw_email_only_attachment +17 -0
- data/test/fixtures/raw_email_quoted_with_0d0a +14 -0
- data/test/fixtures/raw_email_reply +32 -0
- data/test/fixtures/raw_email_simple +11 -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_bad_date +48 -0
- data/test/fixtures/raw_email_with_illegal_boundary +58 -0
- data/test/fixtures/raw_email_with_mimepart_without_content_type +94 -0
- data/test/fixtures/raw_email_with_multipart_mixed_quoted_boundary +50 -0
- data/test/fixtures/raw_email_with_nested_attachment +100 -0
- data/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
- data/test/fixtures/raw_email_with_quoted_attachment_filename +60 -0
- data/test/fixtures/raw_email_with_quoted_illegal_boundary +58 -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/kcode.rb +14 -0
- data/test/temp_test_one.rb +46 -0
- data/test/test_address.rb +1216 -0
- data/test/test_attachments.rb +133 -0
- data/test/test_base64.rb +64 -0
- data/test/test_encode.rb +139 -0
- data/test/test_header.rb +1021 -0
- data/test/test_helper.rb +9 -0
- data/test/test_mail.rb +756 -0
- data/test/test_mbox.rb +184 -0
- data/test/test_port.rb +440 -0
- data/test/test_quote.rb +107 -0
- data/test/test_scanner.rb +209 -0
- data/test/test_utils.rb +36 -0
- data/tmail_es.gemspec +35 -0
- metadata +257 -0
@@ -0,0 +1,177 @@
|
|
1
|
+
Return-path: <stuff+caf_=support=aaa.somewhere.com@gmail.com>
|
2
|
+
Delivery-date: Thu, 05 Jun 2008 10:53:29 -0700
|
3
|
+
Received: from [127.0.220.158] (helo=fg-out-1718.google.com)
|
4
|
+
by smtp.totallyrandom.com with esmtp (Exim 4.68)
|
5
|
+
(envelope-from <stuff+caf_=support=aaa.somewhere.com@gmail.com>)
|
6
|
+
id 1K4JeQ-0005Nd-Ij
|
7
|
+
for support@aaa.somewhere.com; Thu, 05 Jun 2008 10:53:29 -0700
|
8
|
+
Delivered-To: stuff@gmail.com
|
9
|
+
Mime-Version: 1.0 (Apple Message framework v753)
|
10
|
+
To: someone@wibble.com
|
11
|
+
Message-Id: <1234567@234567>
|
12
|
+
Content-Type: multipart/mixed; boundary=Apple-Mail-5-305464934
|
13
|
+
From: Wiffle Wonkle <someone@wiffleplace.com>
|
14
|
+
Subject: Attachment content type nil
|
15
|
+
Date: Thu, 5 Jun 2008 10:53:02 -0700
|
16
|
+
X-Mailer: Apple Mail (2.753)
|
17
|
+
|
18
|
+
|
19
|
+
--Apple-Mail-5-305464934
|
20
|
+
Content-Transfer-Encoding: 7bit
|
21
|
+
Content-Type: text/plain;
|
22
|
+
charset=US-ASCII;
|
23
|
+
delsp=yes;
|
24
|
+
format=flowed
|
25
|
+
|
26
|
+
There some text here. It's not really interesting.
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
--Apple-Mail-5-305464934
|
31
|
+
Content-Transfer-Encoding: base64
|
32
|
+
Content-Type: image/png; x-unix-mode=0644; x-mac-hide-extension=yes;
|
33
|
+
name=Picture 7.png
|
34
|
+
Content-Disposition: inline;
|
35
|
+
filename="Picture 7.png"
|
36
|
+
|
37
|
+
iVBORw0KGgoAAAANSUhEUgAAAlsAAADGCAIAAABqwNKSAAALLGlDQ1BJQ0MgUHJvZmlsZQAAeJyV
|
38
|
+
12dYE1kbBuBnQAEFAyLSpASk19AtiEDoJUIEpQgYSIBogJAEFEURy+paUddeULDA4ipioaxlLeja
|
39
|
+
QERsgIIVWERRFHd1zfdjEopl99v5dWauc+ZMcj/vO9cAKm0sPp8nAyAlVSRg+npSIyKjqPJ3MRTy
|
40
|
+
UMBYaLEShHyPkJAgfPd4fwcEANRbs/h8nvh13cgzdx5XVRYmOzUvLnv5/XUAAIogIjIKIKwAqCWR
|
41
|
+
Y3cAavHkOAyA2hwRXwQQyQDUEpJZbIDIBmAlCGPSAaIIACWJHFcAoMST498BUDITkkQAcQ+QU01l
|
42
|
+
c1MB+U5Azo3NESYAFCsAbLYwIQWg5AHE55SUNDagkgfALIEvEAEqFQCsIyKjqOQjs20AF2tAVqv/
|
43
|
+
2uwcoHQFoK/af83UDNBMBEr/7L/2lgkCAKFeK0x0sAcAEEqewNCHYvFbE0B+A/D3erH4Y4FY/Hch
|
44
|
+
INsE/MZLyBBkSv4vgrgB/Ns5+ZslhywByAByIxTalZSVVUZqjqKM1tEYramrraajqWuor0elGuiP
|
45
|
+
NTQyNDYyHWtmam5hYWlpbrXI2sbG2pZGo9nZ29s5ODiUOTo6Obs4jRs3rnz8+AnjJ06Y5OrmNtnd
|
46
|
+
3d3D09PD8xyd7kX3uuDt7ePr6+t72c/f3z/APzAw8FpQUHAwI3jKlJCQkJuhoczQqVOn1oeFhYdP
|
47
|
+
mzZ9+vS7ERGRkVHR0dHRjTNmzGiKiYmNi4ubOZPFio+Pf5yQwGZzOImJSUnJSclt3FmzZs3m8Xgp
|
48
|
+
qampaal8fjpfIBAKRcKMjMzMOXPmzs3Kmj8/O3vBgoULc3IW5SxevERmyZKlS5ct++GH5XLLl69Y
|
49
|
+
8eOPK1euGr5q1erVa9asXbuOsm5dXt56lfXrN2zYuPGnUT/9tGnT5s1btmzV2Lp127bt23do79ix
|
50
|
+
c+euXbt1d+/Oz9+zZy91796CgsLCffv2G+3ff+DAQZODB4uKiot//rnEoqTk0KFffjl8+IjNkSOl
|
51
|
+
pUePltmVlR07dvz4CccTJ06eLC+vqKisrBpfVfXrr6dOnT595sxZt7Nnz6mfO3f+/IULFy9WV1/y
|
52
|
+
vnTp8uXff79y5erVa9euX79xoya4pqa29ubNurp6s/r627cbGu7cuXv33r379x88aIxqbGxqam5+
|
53
|
+
+PBR7KNHLS2PHz+Jf/Lk6dNnz54/f/Gira29vaPjjz9evuzqev26u/vt23fvenv/+kssBoYqybcp
|
54
|
+
jhhBUVYfqTRKe/Qo9TGaqloaY/R0xujp6esaUA2pYw2NDE2MTM3MzM1NLRZaWllZWtvY2NjSaLZ2
|
55
|
+
dnal9vYOjk4Ozs7OJ1xcxrtMGD9xoqvrJDc3t8nu7pPdz3p4eHrQ6V5eXhe8vX18fP38/Pz9AgIC
|
56
|
+
rgYGBgUFBzEYjJopU0JCQkNC65jMqcywsPDw8IZp06dPj4iIjIy8HxVFZiAmJqY5NpbMAKs1Pl6S
|
57
|
+
AU5SUjKXy+W2SzLAk2QgXZAuFIpE/RmYNy87e8GChQsWLcrNXbx4yZKlspIMLF8hL8nAqtWKkgys
|
58
|
+
y1POy1u/fsOGjaobN36RAK3t2wclQH/Pnv+QgLJj9seOHT8u8XepqKislPi7nj595szZs7/91ufv
|
59
|
+
VV09yD/w+vUbN/r8629P/cK/sSla4v+opaW19fHjb+h3dnW9etXd/eZNT8/79x8+kP5yIxTalSgU
|
60
|
+
ZRW1kcqj1NVGqWtpqGmqa+uO0dbR0R2jp6uvS9U30Dc0GGtkZGw81rjQxMRkv6mZmZm5uXmRhYVF
|
61
|
+
saWllbWNla2t7WEazY5mb+fg4Ojo5Ozs7DJunIukJ0x0dXX9ddIkSV9w9/T0PE+n0897eXl7+/j4
|
62
|
+
+vpe9vPz9/e/EhAQGBh4LSg4mMFgMGqmhJC9IbSOyRzQHSIiIiLuSbIRFd04IyYmJjY29mHczJkz
|
63
|
+
WTP7+gOb8ywxMSkpOVmSjtk8XkpKagqfn54uEHyZjQEdQpqPpcuGSPLxZTrIDjEwHaM3b97S+UV/
|
64
|
+
2J2vl5/fl42x+/bt33/gwMGDRaaSbJDJsD58eHAyTp4sd5Z0hv6+MDAV1V/1hJra2ps3b92qr29o
|
65
|
+
uBPen4fBWXj69NnzFy/a2zo6Oju7ul6/fvOmp0da/+S7DwDknIH8M0CkOhBaDKzdApiuAdSLgJAR
|
66
|
+
QNh4EHeHg6j7A8Tq69L3B/l2AQEZyGIoFKAIClShjjGgwhg2cIEnghEJDoTIRT5KcQ638IxQJKiE
|
67
|
+
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
|
175
|
+
Nsu/AHusfoLn8h+6AAAAAElFTkSuQmCC
|
176
|
+
|
177
|
+
--Apple-Mail-5-305464934--
|
data/test/kcode.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
$:.unshift File.dirname(__FILE__)
|
2
|
+
require 'test_helper'
|
3
|
+
require 'tmail'
|
4
|
+
require 'kcode'
|
5
|
+
require 'time'
|
6
|
+
|
7
|
+
class TestMail < Test::Unit::TestCase
|
8
|
+
include TMail::TextUtils
|
9
|
+
|
10
|
+
def setup
|
11
|
+
@mail = TMail::Mail.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def lf( str )
|
15
|
+
str.gsub(/\n|\r\n|\r/) { "\n" }
|
16
|
+
end
|
17
|
+
|
18
|
+
def crlf( str )
|
19
|
+
str.gsub(/\n|\r\n|\r/) { "\r\n" }
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_MIME
|
23
|
+
# FIXME: test more.
|
24
|
+
|
25
|
+
kcode('EUC') {
|
26
|
+
mail = TMail::Mail.parse('From: hoge@example.jp (=?iso-2022-jp?B?GyRCJUYlOSVIGyhC?=)')
|
27
|
+
assert_not_nil mail['From']
|
28
|
+
|
29
|
+
expected = "\245\306\245\271\245\310"
|
30
|
+
if expected.respond_to? :force_encoding
|
31
|
+
expected.force_encoding(mail['From'].comments.first.encoding)
|
32
|
+
end
|
33
|
+
assert_equal [expected], mail['From'].comments
|
34
|
+
|
35
|
+
expected = "From: hoge@example.jp (\245\306\245\271\245\310)\n\n"
|
36
|
+
expected.force_encoding 'EUC-JP' if expected.respond_to? :force_encoding
|
37
|
+
assert_equal expected, mail.to_s
|
38
|
+
assert_equal expected, mail.decoded
|
39
|
+
|
40
|
+
expected = "From: hoge@example.jp (=?iso-2022-jp?B?GyRCJUYlOSVIGyhC?=)\r\n\r\n"
|
41
|
+
expected.force_encoding 'EUC-JP' if expected.respond_to? :force_encoding
|
42
|
+
assert_equal expected, mail.encoded
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|