mail 2.7.0.rc1 → 2.7.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +71 -98
- data/lib/mail.rb +1 -6
- data/lib/mail/attachments_list.rb +5 -2
- data/lib/mail/body.rb +39 -33
- data/lib/mail/check_delivery_params.rb +8 -6
- data/lib/mail/configuration.rb +2 -0
- data/lib/mail/elements/address.rb +19 -18
- data/lib/mail/encodings.rb +89 -31
- data/lib/mail/encodings/7bit.rb +5 -15
- data/lib/mail/encodings/8bit.rb +2 -21
- data/lib/mail/encodings/base64.rb +11 -12
- data/lib/mail/encodings/binary.rb +3 -22
- data/lib/mail/encodings/identity.rb +24 -0
- data/lib/mail/encodings/quoted_printable.rb +6 -6
- data/lib/mail/encodings/transfer_encoding.rb +38 -29
- data/lib/mail/encodings/unix_to_unix.rb +2 -1
- data/lib/mail/envelope.rb +1 -1
- data/lib/mail/field.rb +93 -61
- data/lib/mail/fields/bcc_field.rb +2 -2
- data/lib/mail/fields/cc_field.rb +1 -1
- data/lib/mail/fields/comments_field.rb +1 -1
- data/lib/mail/fields/common/common_address.rb +32 -7
- data/lib/mail/fields/common/common_field.rb +1 -10
- data/lib/mail/fields/content_description_field.rb +1 -1
- data/lib/mail/fields/content_disposition_field.rb +3 -3
- data/lib/mail/fields/content_id_field.rb +2 -2
- data/lib/mail/fields/content_location_field.rb +1 -1
- data/lib/mail/fields/content_transfer_encoding_field.rb +1 -1
- data/lib/mail/fields/content_type_field.rb +1 -1
- data/lib/mail/fields/date_field.rb +2 -3
- data/lib/mail/fields/from_field.rb +1 -1
- data/lib/mail/fields/in_reply_to_field.rb +1 -1
- data/lib/mail/fields/keywords_field.rb +1 -1
- data/lib/mail/fields/message_id_field.rb +1 -1
- data/lib/mail/fields/mime_version_field.rb +1 -1
- data/lib/mail/fields/optional_field.rb +4 -1
- data/lib/mail/fields/received_field.rb +1 -1
- data/lib/mail/fields/references_field.rb +1 -1
- data/lib/mail/fields/reply_to_field.rb +1 -1
- data/lib/mail/fields/resent_bcc_field.rb +1 -1
- data/lib/mail/fields/resent_cc_field.rb +1 -1
- data/lib/mail/fields/resent_date_field.rb +0 -1
- data/lib/mail/fields/resent_from_field.rb +1 -1
- data/lib/mail/fields/resent_message_id_field.rb +1 -1
- data/lib/mail/fields/resent_sender_field.rb +1 -1
- data/lib/mail/fields/resent_to_field.rb +1 -1
- data/lib/mail/fields/return_path_field.rb +1 -1
- data/lib/mail/fields/sender_field.rb +1 -1
- data/lib/mail/fields/subject_field.rb +1 -1
- data/lib/mail/fields/to_field.rb +1 -1
- data/lib/mail/fields/unstructured_field.rb +19 -2
- data/lib/mail/header.rb +9 -8
- data/lib/mail/mail.rb +2 -10
- data/lib/mail/matchers/has_sent_mail.rb +21 -1
- data/lib/mail/message.rb +64 -51
- data/lib/mail/multibyte.rb +14 -16
- data/lib/mail/multibyte/chars.rb +2 -1
- data/lib/mail/network.rb +1 -0
- data/lib/mail/network/delivery_methods/exim.rb +6 -10
- data/lib/mail/network/delivery_methods/logger_delivery.rb +37 -0
- data/lib/mail/network/delivery_methods/sendmail.rb +8 -4
- data/lib/mail/network/delivery_methods/smtp.rb +56 -55
- data/lib/mail/network/delivery_methods/smtp_connection.rb +9 -1
- data/lib/mail/network/retriever_methods/imap.rb +18 -5
- data/lib/mail/network/retriever_methods/pop3.rb +3 -1
- data/lib/mail/parser_tools.rb +15 -0
- data/lib/mail/parsers/address_lists_parser.rb +30462 -12597
- data/lib/mail/parsers/address_lists_parser.rl +18 -12
- data/lib/mail/parsers/content_disposition_parser.rb +405 -215
- data/lib/mail/parsers/content_disposition_parser.rl +11 -5
- data/lib/mail/parsers/content_location_parser.rb +443 -208
- data/lib/mail/parsers/content_location_parser.rl +9 -3
- data/lib/mail/parsers/content_transfer_encoding_parser.rb +180 -80
- data/lib/mail/parsers/content_transfer_encoding_parser.rl +8 -2
- data/lib/mail/parsers/content_type_parser.rb +436 -245
- data/lib/mail/parsers/content_type_parser.rl +12 -6
- data/lib/mail/parsers/date_time_parser.rb +172 -72
- data/lib/mail/parsers/date_time_parser.rl +10 -4
- data/lib/mail/parsers/envelope_from_parser.rb +2833 -1320
- data/lib/mail/parsers/envelope_from_parser.rl +9 -3
- data/lib/mail/parsers/message_ids_parser.rb +2325 -976
- data/lib/mail/parsers/message_ids_parser.rl +9 -3
- data/lib/mail/parsers/mime_version_parser.rb +164 -64
- data/lib/mail/parsers/mime_version_parser.rl +9 -3
- data/lib/mail/parsers/phrase_lists_parser.rb +582 -237
- data/lib/mail/parsers/phrase_lists_parser.rl +9 -3
- data/lib/mail/parsers/received_parser.rb +7036 -3004
- data/lib/mail/parsers/received_parser.rl +11 -5
- data/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +1 -0
- data/lib/mail/parsers/rfc2045_content_type.rl +1 -0
- data/lib/mail/parsers/rfc2045_mime.rl +1 -0
- data/lib/mail/parsers/rfc2183_content_disposition.rl +1 -0
- data/lib/mail/parsers/rfc3629_utf8.rl +19 -0
- data/lib/mail/parsers/rfc5234_abnf_core_rules.rl +7 -1
- data/lib/mail/parsers/rfc5322.rl +3 -1
- data/lib/mail/parsers/rfc5322_address.rl +3 -1
- data/lib/mail/parsers/rfc5322_date_time.rl +1 -0
- data/lib/mail/parsers/rfc5322_lexical_tokens.rl +9 -5
- data/lib/mail/part.rb +1 -1
- data/lib/mail/utilities.rb +44 -15
- data/lib/mail/version.rb +1 -1
- data/lib/mail/version_specific/ruby_1_8.rb +12 -1
- data/lib/mail/version_specific/ruby_1_9.rb +13 -1
- metadata +7 -13
- data/CHANGELOG.rdoc +0 -822
- data/CONTRIBUTING.md +0 -60
- data/Dependencies.txt +0 -1
- data/Gemfile +0 -11
- data/Rakefile +0 -23
- data/TODO.rdoc +0 -9
- data/lib/mail/multibyte/exceptions.rb +0 -9
@@ -1,24 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'mail/utilities'
|
3
|
+
require 'mail/parser_tools'
|
3
4
|
|
4
5
|
%%{
|
5
6
|
machine content_type;
|
7
|
+
alphtype int;
|
6
8
|
|
7
9
|
# Main Type
|
8
10
|
action main_type_s { main_type_s = p }
|
9
|
-
action main_type_e { content_type.main_type = data
|
11
|
+
action main_type_e { content_type.main_type = chars(data, main_type_s, p-1).downcase }
|
10
12
|
|
11
13
|
# Sub Type
|
12
14
|
action sub_type_s { sub_type_s = p }
|
13
|
-
action sub_type_e { content_type.sub_type = data
|
15
|
+
action sub_type_e { content_type.sub_type = chars(data, sub_type_s, p-1).downcase }
|
14
16
|
|
15
17
|
# Parameter Attribute
|
16
18
|
action param_attr_s { param_attr_s = p }
|
17
|
-
action param_attr_e { param_attr = data
|
19
|
+
action param_attr_e { param_attr = chars(data, param_attr_s, p-1) }
|
18
20
|
|
19
21
|
# Quoted String
|
20
22
|
action qstr_s { qstr_s = p }
|
21
|
-
action qstr_e { qstr = data
|
23
|
+
action qstr_e { qstr = chars(data, qstr_s, p-1) }
|
22
24
|
|
23
25
|
# Parameter Value
|
24
26
|
action param_val_s { param_val_s = p }
|
@@ -28,7 +30,7 @@ require 'mail/utilities'
|
|
28
30
|
end
|
29
31
|
|
30
32
|
# Use quoted s value if one exists, otherwise use parameter value
|
31
|
-
value = qstr || data
|
33
|
+
value = qstr || chars(data, param_val_s, p-1)
|
32
34
|
|
33
35
|
content_type.parameters << { param_attr => value }
|
34
36
|
param_attr = nil
|
@@ -47,11 +49,15 @@ require 'mail/utilities'
|
|
47
49
|
|
48
50
|
module Mail::Parsers
|
49
51
|
module ContentTypeParser
|
52
|
+
extend Mail::ParserTools
|
53
|
+
|
50
54
|
ContentTypeStruct = Struct.new(:main_type, :sub_type, :parameters, :error)
|
51
55
|
|
52
56
|
%%write data noprefix;
|
53
57
|
|
54
58
|
def self.parse(data)
|
59
|
+
data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
|
60
|
+
|
55
61
|
return ContentTypeStruct.new('text', 'plain', []) if Mail::Utilities.blank?(data)
|
56
62
|
content_type = ContentTypeStruct.new(nil, nil, [])
|
57
63
|
|
@@ -68,7 +74,7 @@ module Mail::Parsers
|
|
68
74
|
%%write exec;
|
69
75
|
|
70
76
|
if p != eof || cs < %%{ write first_final; }%%
|
71
|
-
raise Mail::Field::
|
77
|
+
raise Mail::Field::IncompleteParseError.new(Mail::ContentTypeElement, data, p)
|
72
78
|
end
|
73
79
|
|
74
80
|
content_type
|
@@ -1,12 +1,15 @@
|
|
1
1
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
require 'mail/utilities'
|
4
|
+
require 'mail/parser_tools'
|
4
5
|
|
5
6
|
|
6
7
|
|
7
8
|
|
8
9
|
module Mail::Parsers
|
9
10
|
module DateTimeParser
|
11
|
+
extend Mail::ParserTools
|
12
|
+
|
10
13
|
DateTimeStruct = Struct.new(:date_string, :time_string, :error)
|
11
14
|
|
12
15
|
|
@@ -49,11 +52,14 @@ self._trans_keys = [
|
|
49
52
|
110, 110, 97, 117, 116,
|
50
53
|
116, 104, 117, 117, 117,
|
51
54
|
101, 101, 101, 101, 100, 100,
|
52
|
-
1,
|
53
|
-
10, 9, 32,
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
1, 244, 1, 244, 10,
|
56
|
+
10, 9, 32, 0, 244,
|
57
|
+
128, 191, 160, 191, 128, 191,
|
58
|
+
128, 159, 144, 191, 128,
|
59
|
+
191, 128, 143, 9, 40,
|
60
|
+
9, 40, 9, 40, 9, 83,
|
61
|
+
9, 77, 9, 84, 0,
|
62
|
+
0, 0
|
57
63
|
]
|
58
64
|
|
59
65
|
class << self
|
@@ -72,8 +78,9 @@ self._key_spans = [
|
|
72
78
|
8, 1, 1, 1, 1, 1, 1, 1,
|
73
79
|
1, 36, 1, 24, 36, 49, 49, 1,
|
74
80
|
24, 49, 1, 1, 21, 1, 14, 1,
|
75
|
-
1, 1, 1,
|
76
|
-
|
81
|
+
1, 1, 1, 244, 244, 1, 24, 245,
|
82
|
+
64, 32, 64, 32, 48, 64, 16, 32,
|
83
|
+
32, 32, 75, 69, 76, 0
|
77
84
|
]
|
78
85
|
|
79
86
|
class << self
|
@@ -92,8 +99,9 @@ self._index_offsets = [
|
|
92
99
|
1827, 1836, 1838, 1840, 1842, 1844, 1846, 1848,
|
93
100
|
1850, 1852, 1889, 1891, 1916, 1953, 2003, 2053,
|
94
101
|
2055, 2080, 2130, 2132, 2134, 2156, 2158, 2173,
|
95
|
-
2175, 2177, 2179, 2181,
|
96
|
-
|
102
|
+
2175, 2177, 2179, 2181, 2426, 2671, 2673, 2698,
|
103
|
+
2944, 3009, 3042, 3107, 3140, 3189, 3254, 3271,
|
104
|
+
3304, 3337, 3370, 3446, 3516, 3593
|
97
105
|
]
|
98
106
|
|
99
107
|
class << self
|
@@ -389,31 +397,7 @@ self._indicies = [
|
|
389
397
|
152, 152, 152, 152, 152, 152, 152, 152,
|
390
398
|
152, 152, 152, 152, 152, 152, 152, 152,
|
391
399
|
152, 152, 152, 152, 152, 152, 152, 152,
|
392
|
-
152, 152, 152, 152, 1,
|
393
|
-
157, 157, 157, 157, 157, 157, 1, 157,
|
394
|
-
157, 158, 157, 157, 157, 157, 157, 157,
|
395
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
396
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
397
|
-
157, 157, 157, 157, 159, 160, 157, 157,
|
398
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
399
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
400
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
401
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
402
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
403
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
404
|
-
161, 157, 157, 157, 157, 157, 157, 157,
|
405
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
406
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
407
|
-
157, 157, 157, 157, 157, 157, 157, 157,
|
408
|
-
157, 157, 157, 157, 1, 162, 1, 157,
|
409
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
410
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
411
|
-
1, 1, 1, 1, 1, 1, 157, 1,
|
412
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
413
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
414
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
415
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
416
|
-
1, 1, 1, 1, 1, 1, 1, 1,
|
400
|
+
152, 152, 152, 152, 1, 1, 1, 1,
|
417
401
|
1, 1, 1, 1, 1, 1, 1, 1,
|
418
402
|
1, 1, 1, 1, 1, 1, 1, 1,
|
419
403
|
1, 1, 1, 1, 1, 1, 1, 1,
|
@@ -421,51 +405,160 @@ self._indicies = [
|
|
421
405
|
1, 1, 1, 1, 1, 1, 1, 1,
|
422
406
|
1, 1, 1, 1, 1, 1, 1, 1,
|
423
407
|
1, 1, 1, 1, 1, 1, 1, 1,
|
408
|
+
1, 1, 1, 1, 1, 1, 157, 157,
|
409
|
+
157, 157, 157, 157, 157, 157, 157, 157,
|
410
|
+
157, 157, 157, 157, 157, 157, 157, 157,
|
411
|
+
157, 157, 157, 157, 157, 157, 157, 157,
|
412
|
+
157, 157, 157, 157, 158, 159, 159, 159,
|
413
|
+
159, 159, 159, 159, 159, 159, 159, 159,
|
414
|
+
159, 160, 159, 159, 161, 162, 162, 162,
|
415
|
+
163, 1, 164, 164, 164, 164, 164, 164,
|
416
|
+
164, 164, 164, 1, 164, 164, 165, 164,
|
417
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
418
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
419
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
420
|
+
164, 166, 167, 164, 164, 164, 164, 164,
|
421
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
422
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
423
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
424
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
425
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
426
|
+
164, 164, 164, 164, 164, 168, 164, 164,
|
427
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
428
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
429
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
430
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
431
|
+
164, 1, 1, 1, 1, 1, 1, 1,
|
424
432
|
1, 1, 1, 1, 1, 1, 1, 1,
|
425
433
|
1, 1, 1, 1, 1, 1, 1, 1,
|
426
434
|
1, 1, 1, 1, 1, 1, 1, 1,
|
427
435
|
1, 1, 1, 1, 1, 1, 1, 1,
|
428
|
-
157, 163, 1, 1, 1, 164, 1, 1,
|
429
436
|
1, 1, 1, 1, 1, 1, 1, 1,
|
430
437
|
1, 1, 1, 1, 1, 1, 1, 1,
|
431
|
-
163, 1, 1, 1, 1, 1, 1, 1,
|
432
|
-
165, 1, 118, 1, 1, 1, 166, 1,
|
433
438
|
1, 1, 1, 1, 1, 1, 1, 1,
|
439
|
+
1, 1, 1, 169, 169, 169, 169, 169,
|
440
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
441
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
442
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
443
|
+
169, 170, 171, 171, 171, 171, 171, 171,
|
444
|
+
171, 171, 171, 171, 171, 171, 172, 171,
|
445
|
+
171, 173, 174, 174, 174, 175, 1, 176,
|
446
|
+
1, 164, 1, 1, 1, 1, 1, 1,
|
447
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
448
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
449
|
+
164, 1, 164, 164, 164, 164, 164, 164,
|
450
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
451
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
452
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
453
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
454
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
455
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
456
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
457
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
458
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
459
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
460
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
461
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
462
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
463
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
464
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
465
|
+
164, 164, 1, 1, 1, 1, 1, 1,
|
466
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
467
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
468
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
469
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
470
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
471
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
472
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
473
|
+
1, 1, 1, 1, 169, 169, 169, 169,
|
474
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
475
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
476
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
477
|
+
169, 169, 170, 171, 171, 171, 171, 171,
|
478
|
+
171, 171, 171, 171, 171, 171, 171, 172,
|
479
|
+
171, 171, 173, 174, 174, 174, 175, 1,
|
480
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
481
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
482
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
483
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
484
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
485
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
486
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
487
|
+
164, 164, 164, 164, 164, 164, 164, 164,
|
488
|
+
1, 169, 169, 169, 169, 169, 169, 169,
|
489
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
490
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
491
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
492
|
+
169, 1, 169, 169, 169, 169, 169, 169,
|
493
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
494
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
495
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
496
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
497
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
498
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
499
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
500
|
+
169, 169, 1, 169, 169, 169, 169, 169,
|
501
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
502
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
503
|
+
169, 169, 169, 169, 169, 169, 169, 169,
|
504
|
+
169, 169, 169, 1, 171, 171, 171, 171,
|
505
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
506
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
507
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
508
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
509
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
510
|
+
171, 171, 171, 171, 1, 171, 171, 171,
|
511
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
512
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
513
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
514
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
515
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
516
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
517
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
518
|
+
171, 171, 171, 171, 171, 1, 171, 171,
|
519
|
+
171, 171, 171, 171, 171, 171, 171, 171,
|
520
|
+
171, 171, 171, 171, 171, 171, 1, 177,
|
521
|
+
1, 1, 1, 178, 1, 1, 1, 1,
|
522
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
523
|
+
1, 1, 1, 1, 1, 1, 177, 1,
|
524
|
+
1, 1, 1, 1, 1, 1, 179, 1,
|
525
|
+
118, 1, 1, 1, 180, 1, 1, 1,
|
434
526
|
1, 1, 1, 1, 1, 1, 1, 1,
|
435
|
-
1,
|
436
|
-
1,
|
527
|
+
1, 1, 1, 1, 1, 1, 1, 118,
|
528
|
+
1, 1, 1, 1, 1, 1, 1, 181,
|
529
|
+
1, 182, 1, 1, 1, 183, 1, 1,
|
437
530
|
1, 1, 1, 1, 1, 1, 1, 1,
|
438
531
|
1, 1, 1, 1, 1, 1, 1, 1,
|
439
|
-
|
440
|
-
|
441
|
-
164, 1, 1, 1, 1, 1, 1, 1,
|
532
|
+
182, 1, 1, 1, 1, 1, 1, 1,
|
533
|
+
184, 1, 177, 1, 1, 1, 178, 1,
|
442
534
|
1, 1, 1, 1, 1, 1, 1, 1,
|
443
|
-
1, 1, 1, 163, 1, 1, 1, 1,
|
444
|
-
1, 1, 1, 165, 1, 1, 1, 1,
|
445
535
|
1, 1, 1, 1, 1, 1, 1, 1,
|
536
|
+
1, 177, 1, 1, 1, 1, 1, 1,
|
537
|
+
1, 179, 1, 1, 1, 1, 1, 1,
|
446
538
|
1, 1, 1, 1, 1, 1, 1, 1,
|
447
|
-
1, 1, 1, 1, 1, 1, 1, 171,
|
448
539
|
1, 1, 1, 1, 1, 1, 1, 1,
|
449
|
-
1, 1, 1, 1, 1,
|
450
|
-
163, 1, 1, 1, 164, 1, 1, 1,
|
540
|
+
1, 1, 1, 1, 1, 185, 1, 1,
|
451
541
|
1, 1, 1, 1, 1, 1, 1, 1,
|
452
|
-
1, 1, 1, 1,
|
453
|
-
1, 1,
|
542
|
+
1, 1, 1, 1, 185, 1, 177, 1,
|
543
|
+
1, 1, 178, 1, 1, 1, 1, 1,
|
454
544
|
1, 1, 1, 1, 1, 1, 1, 1,
|
545
|
+
1, 1, 1, 1, 1, 177, 1, 1,
|
546
|
+
1, 1, 1, 1, 1, 179, 1, 1,
|
455
547
|
1, 1, 1, 1, 1, 1, 1, 1,
|
456
548
|
1, 1, 1, 1, 1, 1, 1, 1,
|
457
549
|
1, 1, 1, 1, 1, 1, 1, 1,
|
458
|
-
1, 1, 1, 1, 171, 1, 163, 1,
|
459
|
-
1, 1, 164, 1, 1, 1, 1, 1,
|
460
550
|
1, 1, 1, 1, 1, 1, 1, 1,
|
461
|
-
1, 1,
|
462
|
-
|
551
|
+
1, 1, 185, 1, 177, 1, 1, 1,
|
552
|
+
178, 1, 1, 1, 1, 1, 1, 1,
|
463
553
|
1, 1, 1, 1, 1, 1, 1, 1,
|
554
|
+
1, 1, 1, 177, 1, 1, 1, 1,
|
555
|
+
1, 1, 1, 179, 1, 1, 1, 1,
|
464
556
|
1, 1, 1, 1, 1, 1, 1, 1,
|
465
557
|
1, 1, 1, 1, 1, 1, 1, 1,
|
466
558
|
1, 1, 1, 1, 1, 1, 1, 1,
|
467
559
|
1, 1, 1, 1, 1, 1, 1, 1,
|
468
|
-
1,
|
560
|
+
1, 1, 1, 1, 1, 1, 1, 90,
|
561
|
+
1, 1, 0
|
469
562
|
]
|
470
563
|
|
471
564
|
class << self
|
@@ -484,17 +577,19 @@ self._trans_targs = [
|
|
484
577
|
19, 20, 22, 23, 24, 25, 27, 28,
|
485
578
|
26, 24, 25, 27, 28, 29, 31, 32,
|
486
579
|
30, 29, 31, 32, 33, 34, 35, 37,
|
487
|
-
38, 48,
|
580
|
+
38, 48, 103, 106, 107, 108, 36, 34,
|
488
581
|
35, 37, 38, 39, 41, 42, 40, 39,
|
489
582
|
41, 42, 43, 44, 45, 47, 46, 44,
|
490
|
-
45, 47, 49, 50, 51, 53,
|
583
|
+
45, 47, 49, 50, 51, 53, 104, 57,
|
491
584
|
59, 61, 62, 64, 66, 68, 70, 72,
|
492
585
|
73, 74, 76, 77, 75, 73, 74, 76,
|
493
586
|
77, 78, 79, 81, 78, 79, 81, 80,
|
494
587
|
78, 79, 81, 83, 85, 87, 88, 90,
|
495
|
-
92, 93, 92,
|
496
|
-
|
497
|
-
|
588
|
+
92, 93, 92, 109, 95, 96, 97, 98,
|
589
|
+
99, 100, 101, 102, 92, 93, 92, 109,
|
590
|
+
95, 96, 97, 98, 99, 100, 101, 102,
|
591
|
+
94, 104, 52, 105, 52, 105, 104, 52,
|
592
|
+
105, 54
|
498
593
|
]
|
499
594
|
|
500
595
|
class << self
|
@@ -521,9 +616,11 @@ self._trans_actions = [
|
|
521
616
|
0, 0, 3, 0, 0, 4, 4, 5,
|
522
617
|
4, 1, 1, 8, 0, 0, 3, 0,
|
523
618
|
4, 4, 5, 0, 0, 0, 0, 0,
|
524
|
-
9, 9, 10, 11, 9,
|
525
|
-
|
526
|
-
|
619
|
+
9, 9, 10, 11, 9, 9, 9, 9,
|
620
|
+
9, 9, 9, 9, 0, 0, 3, 12,
|
621
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
622
|
+
0, 13, 13, 14, 0, 3, 4, 4,
|
623
|
+
5, 0
|
527
624
|
]
|
528
625
|
|
529
626
|
class << self
|
@@ -543,7 +640,8 @@ self._eof_actions = [
|
|
543
640
|
0, 0, 0, 0, 0, 0, 0, 0,
|
544
641
|
0, 0, 0, 0, 0, 0, 0, 0,
|
545
642
|
0, 0, 0, 0, 0, 0, 0, 0,
|
546
|
-
|
643
|
+
0, 0, 0, 0, 0, 0, 0, 13,
|
644
|
+
0, 4, 13, 13, 13, 0
|
547
645
|
]
|
548
646
|
|
549
647
|
class << self
|
@@ -553,7 +651,7 @@ self.start = 1;
|
|
553
651
|
class << self
|
554
652
|
attr_accessor :first_final
|
555
653
|
end
|
556
|
-
self.first_final =
|
654
|
+
self.first_final = 103;
|
557
655
|
class << self
|
558
656
|
attr_accessor :error
|
559
657
|
end
|
@@ -571,7 +669,9 @@ self.en_main = 1;
|
|
571
669
|
|
572
670
|
|
573
671
|
def self.parse(data)
|
574
|
-
|
672
|
+
data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
|
673
|
+
|
674
|
+
raise Mail::Field::NilParseError.new(Mail::DateTimeElement) if data.nil?
|
575
675
|
|
576
676
|
date_time = DateTimeStruct.new([])
|
577
677
|
|
@@ -633,7 +733,7 @@ begin
|
|
633
733
|
date_s = p end
|
634
734
|
when 13 then
|
635
735
|
begin
|
636
|
-
date_time.time_string = data
|
736
|
+
date_time.time_string = chars(data, time_s, p-1) end
|
637
737
|
when 9 then
|
638
738
|
begin
|
639
739
|
end
|
@@ -673,12 +773,12 @@ begin
|
|
673
773
|
end
|
674
774
|
when 6 then
|
675
775
|
begin
|
676
|
-
date_time.date_string = data
|
776
|
+
date_time.date_string = chars(data, date_s, p-1) end
|
677
777
|
begin
|
678
778
|
time_s = p end
|
679
779
|
when 14 then
|
680
780
|
begin
|
681
|
-
date_time.time_string = data
|
781
|
+
date_time.time_string = chars(data, time_s, p-1) end
|
682
782
|
begin
|
683
783
|
begin
|
684
784
|
stack[top] = cs
|
@@ -739,7 +839,7 @@ begin
|
|
739
839
|
begin
|
740
840
|
end
|
741
841
|
begin
|
742
|
-
date_time.date_string = data
|
842
|
+
date_time.date_string = chars(data, date_s, p-1) end
|
743
843
|
begin
|
744
844
|
time_s = p end
|
745
845
|
end
|
@@ -761,7 +861,7 @@ begin
|
|
761
861
|
case _eof_actions[cs]
|
762
862
|
when 13 then
|
763
863
|
begin
|
764
|
-
date_time.time_string = data
|
864
|
+
date_time.time_string = chars(data, time_s, p-1) end
|
765
865
|
when 4 then
|
766
866
|
begin
|
767
867
|
end
|
@@ -776,8 +876,8 @@ end
|
|
776
876
|
end
|
777
877
|
|
778
878
|
|
779
|
-
if p != eof || cs <
|
780
|
-
raise Mail::Field::
|
879
|
+
if p != eof || cs < 103
|
880
|
+
raise Mail::Field::IncompleteParseError.new(Mail::DateTimeElement, data, p)
|
781
881
|
end
|
782
882
|
|
783
883
|
date_time
|