mail 2.6.3 → 2.7.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 (178) hide show
  1. checksums.yaml +5 -5
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +91 -79
  4. data/lib/mail/attachments_list.rb +11 -5
  5. data/lib/mail/body.rb +54 -41
  6. data/lib/mail/check_delivery_params.rb +50 -10
  7. data/lib/mail/configuration.rb +3 -0
  8. data/lib/mail/constants.rb +5 -3
  9. data/lib/mail/core_extensions/smtp.rb +20 -16
  10. data/lib/mail/core_extensions/string.rb +1 -30
  11. data/lib/mail/elements/address.rb +43 -32
  12. data/lib/mail/elements/address_list.rb +11 -18
  13. data/lib/mail/elements/content_disposition_element.rb +9 -15
  14. data/lib/mail/elements/content_location_element.rb +8 -12
  15. data/lib/mail/elements/content_transfer_encoding_element.rb +6 -10
  16. data/lib/mail/elements/content_type_element.rb +9 -19
  17. data/lib/mail/elements/date_time_element.rb +7 -14
  18. data/lib/mail/elements/envelope_from_element.rb +15 -21
  19. data/lib/mail/elements/message_ids_element.rb +12 -14
  20. data/lib/mail/elements/mime_version_element.rb +7 -14
  21. data/lib/mail/elements/phrase_list.rb +7 -9
  22. data/lib/mail/elements/received_element.rb +10 -15
  23. data/lib/mail/elements.rb +1 -0
  24. data/lib/mail/encodings/7bit.rb +6 -15
  25. data/lib/mail/encodings/8bit.rb +5 -18
  26. data/lib/mail/encodings/base64.rb +15 -10
  27. data/lib/mail/encodings/binary.rb +4 -22
  28. data/lib/mail/encodings/identity.rb +24 -0
  29. data/lib/mail/encodings/quoted_printable.rb +13 -7
  30. data/lib/mail/encodings/transfer_encoding.rb +47 -28
  31. data/lib/mail/encodings/unix_to_unix.rb +4 -1
  32. data/lib/mail/encodings.rb +114 -60
  33. data/lib/mail/envelope.rb +2 -1
  34. data/lib/mail/field.rb +114 -62
  35. data/lib/mail/field_list.rb +1 -0
  36. data/lib/mail/fields/bcc_field.rb +17 -5
  37. data/lib/mail/fields/cc_field.rb +2 -2
  38. data/lib/mail/fields/comments_field.rb +2 -1
  39. data/lib/mail/fields/common/address_container.rb +3 -2
  40. data/lib/mail/fields/common/common_address.rb +40 -14
  41. data/lib/mail/fields/common/common_date.rb +2 -1
  42. data/lib/mail/fields/common/common_field.rb +5 -11
  43. data/lib/mail/fields/common/common_message_id.rb +3 -2
  44. data/lib/mail/fields/common/parameter_hash.rb +2 -1
  45. data/lib/mail/fields/content_description_field.rb +2 -1
  46. data/lib/mail/fields/content_disposition_field.rb +14 -13
  47. data/lib/mail/fields/content_id_field.rb +5 -4
  48. data/lib/mail/fields/content_location_field.rb +3 -2
  49. data/lib/mail/fields/content_transfer_encoding_field.rb +3 -2
  50. data/lib/mail/fields/content_type_field.rb +7 -11
  51. data/lib/mail/fields/date_field.rb +4 -4
  52. data/lib/mail/fields/from_field.rb +2 -2
  53. data/lib/mail/fields/in_reply_to_field.rb +2 -1
  54. data/lib/mail/fields/keywords_field.rb +3 -3
  55. data/lib/mail/fields/message_id_field.rb +3 -2
  56. data/lib/mail/fields/mime_version_field.rb +4 -3
  57. data/lib/mail/fields/optional_field.rb +5 -1
  58. data/lib/mail/fields/received_field.rb +5 -4
  59. data/lib/mail/fields/references_field.rb +2 -1
  60. data/lib/mail/fields/reply_to_field.rb +2 -2
  61. data/lib/mail/fields/resent_bcc_field.rb +2 -2
  62. data/lib/mail/fields/resent_cc_field.rb +2 -2
  63. data/lib/mail/fields/resent_date_field.rb +2 -2
  64. data/lib/mail/fields/resent_from_field.rb +2 -2
  65. data/lib/mail/fields/resent_message_id_field.rb +2 -1
  66. data/lib/mail/fields/resent_sender_field.rb +2 -2
  67. data/lib/mail/fields/resent_to_field.rb +2 -2
  68. data/lib/mail/fields/return_path_field.rb +2 -2
  69. data/lib/mail/fields/sender_field.rb +2 -2
  70. data/lib/mail/fields/structured_field.rb +1 -0
  71. data/lib/mail/fields/subject_field.rb +2 -1
  72. data/lib/mail/fields/to_field.rb +2 -2
  73. data/lib/mail/fields/unstructured_field.rb +25 -7
  74. data/lib/mail/fields.rb +1 -0
  75. data/lib/mail/header.rb +15 -12
  76. data/lib/mail/indifferent_hash.rb +1 -0
  77. data/lib/mail/mail.rb +3 -10
  78. data/lib/mail/matchers/attachment_matchers.rb +29 -0
  79. data/lib/mail/matchers/has_sent_mail.rb +51 -7
  80. data/lib/mail/message.rb +91 -86
  81. data/lib/mail/multibyte/chars.rb +32 -30
  82. data/lib/mail/multibyte/unicode.rb +31 -26
  83. data/lib/mail/multibyte/utils.rb +1 -0
  84. data/lib/mail/multibyte.rb +65 -15
  85. data/lib/mail/network/delivery_methods/exim.rb +7 -10
  86. data/lib/mail/network/delivery_methods/file_delivery.rb +5 -8
  87. data/lib/mail/network/delivery_methods/logger_delivery.rb +37 -0
  88. data/lib/mail/network/delivery_methods/sendmail.rb +17 -11
  89. data/lib/mail/network/delivery_methods/smtp.rb +60 -53
  90. data/lib/mail/network/delivery_methods/smtp_connection.rb +11 -6
  91. data/lib/mail/network/delivery_methods/test_mailer.rb +6 -8
  92. data/lib/mail/network/retriever_methods/base.rb +1 -0
  93. data/lib/mail/network/retriever_methods/imap.rb +19 -5
  94. data/lib/mail/network/retriever_methods/pop3.rb +4 -1
  95. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  96. data/lib/mail/network.rb +2 -0
  97. data/lib/mail/parser_tools.rb +15 -0
  98. data/lib/mail/parsers/address_lists_parser.rb +33208 -104
  99. data/lib/mail/parsers/address_lists_parser.rl +172 -0
  100. data/lib/mail/parsers/content_disposition_parser.rb +877 -49
  101. data/lib/mail/parsers/content_disposition_parser.rl +82 -0
  102. data/lib/mail/parsers/content_location_parser.rb +804 -23
  103. data/lib/mail/parsers/content_location_parser.rl +71 -0
  104. data/lib/mail/parsers/content_transfer_encoding_parser.rb +502 -19
  105. data/lib/mail/parsers/content_transfer_encoding_parser.rl +64 -0
  106. data/lib/mail/parsers/content_type_parser.rb +1024 -48
  107. data/lib/mail/parsers/content_type_parser.rl +83 -0
  108. data/lib/mail/parsers/date_time_parser.rb +872 -23
  109. data/lib/mail/parsers/date_time_parser.rl +62 -0
  110. data/lib/mail/parsers/envelope_from_parser.rb +3570 -34
  111. data/lib/mail/parsers/envelope_from_parser.rl +82 -0
  112. data/lib/mail/parsers/message_ids_parser.rb +2840 -25
  113. data/lib/mail/parsers/message_ids_parser.rl +82 -0
  114. data/lib/mail/parsers/mime_version_parser.rb +492 -26
  115. data/lib/mail/parsers/mime_version_parser.rl +61 -0
  116. data/lib/mail/parsers/phrase_lists_parser.rb +862 -17
  117. data/lib/mail/parsers/phrase_lists_parser.rl +83 -0
  118. data/lib/mail/parsers/received_parser.rb +8765 -36
  119. data/lib/mail/parsers/received_parser.rl +84 -0
  120. data/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +13 -0
  121. data/lib/mail/parsers/rfc2045_content_type.rl +25 -0
  122. data/lib/mail/parsers/rfc2045_mime.rl +16 -0
  123. data/lib/mail/parsers/rfc2183_content_disposition.rl +15 -0
  124. data/lib/mail/parsers/rfc3629_utf8.rl +19 -0
  125. data/lib/mail/parsers/rfc5234_abnf_core_rules.rl +22 -0
  126. data/lib/mail/parsers/rfc5322.rl +59 -0
  127. data/lib/mail/parsers/rfc5322_address.rl +72 -0
  128. data/lib/mail/parsers/{ragel/date_time.rl → rfc5322_date_time.rl} +8 -1
  129. data/lib/mail/parsers/rfc5322_lexical_tokens.rl +60 -0
  130. data/lib/mail/parsers.rb +17 -24
  131. data/lib/mail/part.rb +8 -5
  132. data/lib/mail/parts_list.rb +31 -14
  133. data/lib/mail/utilities.rb +109 -10
  134. data/lib/mail/values/unicode_tables.dat +0 -0
  135. data/lib/mail/version.rb +3 -2
  136. data/lib/mail/version_specific/ruby_1_8.rb +50 -6
  137. data/lib/mail/version_specific/ruby_1_9.rb +103 -18
  138. data/lib/mail.rb +5 -12
  139. metadata +47 -57
  140. data/CHANGELOG.rdoc +0 -759
  141. data/CONTRIBUTING.md +0 -60
  142. data/Dependencies.txt +0 -2
  143. data/Gemfile +0 -15
  144. data/Rakefile +0 -29
  145. data/TODO.rdoc +0 -9
  146. data/lib/mail/core_extensions/nil.rb +0 -19
  147. data/lib/mail/core_extensions/object.rb +0 -13
  148. data/lib/mail/core_extensions/string/access.rb +0 -145
  149. data/lib/mail/core_extensions/string/multibyte.rb +0 -78
  150. data/lib/mail/multibyte/exceptions.rb +0 -8
  151. data/lib/mail/parsers/ragel/common.rl +0 -185
  152. data/lib/mail/parsers/ragel/parser_info.rb +0 -61
  153. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb +0 -14864
  154. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl +0 -37
  155. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb +0 -751
  156. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl +0 -37
  157. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb +0 -614
  158. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl +0 -37
  159. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb +0 -447
  160. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl +0 -37
  161. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb +0 -825
  162. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl +0 -37
  163. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb +0 -817
  164. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl +0 -37
  165. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb +0 -2149
  166. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl +0 -37
  167. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb +0 -1570
  168. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl +0 -37
  169. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb +0 -440
  170. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl +0 -37
  171. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb +0 -564
  172. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl +0 -37
  173. data/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl +0 -51
  174. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb +0 -5144
  175. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl +0 -37
  176. data/lib/mail/parsers/ragel/ruby/parser.rb.rl.erb +0 -37
  177. data/lib/mail/parsers/ragel/ruby.rb +0 -40
  178. data/lib/mail/parsers/ragel.rb +0 -17
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mail
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.3
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikel Lindsaar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-03 00:00:00.000000000 Z
11
+ date: 2018-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: mime-types
14
+ name: mini_mime
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '3'
19
+ version: 0.1.1
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '1.16'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '3'
26
+ version: 0.1.1
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: bundler
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -64,14 +58,14 @@ dependencies:
64
58
  requirements:
65
59
  - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: 3.0.0
61
+ version: '3.0'
68
62
  type: :development
69
63
  prerelease: false
70
64
  version_requirements: !ruby/object:Gem::Requirement
71
65
  requirements:
72
66
  - - "~>"
73
67
  - !ruby/object:Gem::Version
74
- version: 3.0.0
68
+ version: '3.0'
75
69
  - !ruby/object:Gem::Dependency
76
70
  name: rdoc
77
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,36 +80,37 @@ dependencies:
86
80
  - - ">="
87
81
  - !ruby/object:Gem::Version
88
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rufo
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
89
97
  description: A really Ruby Mail handler.
90
98
  email: raasdnil@gmail.com
91
99
  executables: []
92
100
  extensions: []
93
101
  extra_rdoc_files:
94
102
  - README.md
95
- - CONTRIBUTING.md
96
- - CHANGELOG.rdoc
97
- - TODO.rdoc
98
103
  files:
99
- - CHANGELOG.rdoc
100
- - CONTRIBUTING.md
101
- - Dependencies.txt
102
- - Gemfile
103
104
  - MIT-LICENSE
104
105
  - README.md
105
- - Rakefile
106
- - TODO.rdoc
107
106
  - lib/mail.rb
108
107
  - lib/mail/attachments_list.rb
109
108
  - lib/mail/body.rb
110
109
  - lib/mail/check_delivery_params.rb
111
110
  - lib/mail/configuration.rb
112
111
  - lib/mail/constants.rb
113
- - lib/mail/core_extensions/nil.rb
114
- - lib/mail/core_extensions/object.rb
115
112
  - lib/mail/core_extensions/smtp.rb
116
113
  - lib/mail/core_extensions/string.rb
117
- - lib/mail/core_extensions/string/access.rb
118
- - lib/mail/core_extensions/string/multibyte.rb
119
114
  - lib/mail/elements.rb
120
115
  - lib/mail/elements/address.rb
121
116
  - lib/mail/elements/address_list.rb
@@ -134,6 +129,7 @@ files:
134
129
  - lib/mail/encodings/8bit.rb
135
130
  - lib/mail/encodings/base64.rb
136
131
  - lib/mail/encodings/binary.rb
132
+ - lib/mail/encodings/identity.rb
137
133
  - lib/mail/encodings/quoted_printable.rb
138
134
  - lib/mail/encodings/transfer_encoding.rb
139
135
  - lib/mail/encodings/unix_to_unix.rb
@@ -182,16 +178,17 @@ files:
182
178
  - lib/mail/header.rb
183
179
  - lib/mail/indifferent_hash.rb
184
180
  - lib/mail/mail.rb
181
+ - lib/mail/matchers/attachment_matchers.rb
185
182
  - lib/mail/matchers/has_sent_mail.rb
186
183
  - lib/mail/message.rb
187
184
  - lib/mail/multibyte.rb
188
185
  - lib/mail/multibyte/chars.rb
189
- - lib/mail/multibyte/exceptions.rb
190
186
  - lib/mail/multibyte/unicode.rb
191
187
  - lib/mail/multibyte/utils.rb
192
188
  - lib/mail/network.rb
193
189
  - lib/mail/network/delivery_methods/exim.rb
194
190
  - lib/mail/network/delivery_methods/file_delivery.rb
191
+ - lib/mail/network/delivery_methods/logger_delivery.rb
195
192
  - lib/mail/network/delivery_methods/sendmail.rb
196
193
  - lib/mail/network/delivery_methods/smtp.rb
197
194
  - lib/mail/network/delivery_methods/smtp_connection.rb
@@ -200,47 +197,40 @@ files:
200
197
  - lib/mail/network/retriever_methods/imap.rb
201
198
  - lib/mail/network/retriever_methods/pop3.rb
202
199
  - lib/mail/network/retriever_methods/test_retriever.rb
200
+ - lib/mail/parser_tools.rb
203
201
  - lib/mail/parsers.rb
204
202
  - lib/mail/parsers/address_lists_parser.rb
203
+ - lib/mail/parsers/address_lists_parser.rl
205
204
  - lib/mail/parsers/content_disposition_parser.rb
205
+ - lib/mail/parsers/content_disposition_parser.rl
206
206
  - lib/mail/parsers/content_location_parser.rb
207
+ - lib/mail/parsers/content_location_parser.rl
207
208
  - lib/mail/parsers/content_transfer_encoding_parser.rb
209
+ - lib/mail/parsers/content_transfer_encoding_parser.rl
208
210
  - lib/mail/parsers/content_type_parser.rb
211
+ - lib/mail/parsers/content_type_parser.rl
209
212
  - lib/mail/parsers/date_time_parser.rb
213
+ - lib/mail/parsers/date_time_parser.rl
210
214
  - lib/mail/parsers/envelope_from_parser.rb
215
+ - lib/mail/parsers/envelope_from_parser.rl
211
216
  - lib/mail/parsers/message_ids_parser.rb
217
+ - lib/mail/parsers/message_ids_parser.rl
212
218
  - lib/mail/parsers/mime_version_parser.rb
219
+ - lib/mail/parsers/mime_version_parser.rl
213
220
  - lib/mail/parsers/phrase_lists_parser.rb
214
- - lib/mail/parsers/ragel.rb
215
- - lib/mail/parsers/ragel/common.rl
216
- - lib/mail/parsers/ragel/date_time.rl
217
- - lib/mail/parsers/ragel/parser_info.rb
218
- - lib/mail/parsers/ragel/ruby.rb
219
- - lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb
220
- - lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl
221
- - lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb
222
- - lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl
223
- - lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb
224
- - lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl
225
- - lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb
226
- - lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl
227
- - lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb
228
- - lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl
229
- - lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb
230
- - lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl
231
- - lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb
232
- - lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl
233
- - lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb
234
- - lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl
235
- - lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb
236
- - lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl
237
- - lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb
238
- - lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl
239
- - lib/mail/parsers/ragel/ruby/machines/rb_actions.rl
240
- - lib/mail/parsers/ragel/ruby/machines/received_machine.rb
241
- - lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl
242
- - lib/mail/parsers/ragel/ruby/parser.rb.rl.erb
221
+ - lib/mail/parsers/phrase_lists_parser.rl
243
222
  - lib/mail/parsers/received_parser.rb
223
+ - lib/mail/parsers/received_parser.rl
224
+ - lib/mail/parsers/rfc2045_content_transfer_encoding.rl
225
+ - lib/mail/parsers/rfc2045_content_type.rl
226
+ - lib/mail/parsers/rfc2045_mime.rl
227
+ - lib/mail/parsers/rfc2183_content_disposition.rl
228
+ - lib/mail/parsers/rfc3629_utf8.rl
229
+ - lib/mail/parsers/rfc5234_abnf_core_rules.rl
230
+ - lib/mail/parsers/rfc5322.rl
231
+ - lib/mail/parsers/rfc5322_address.rl
232
+ - lib/mail/parsers/rfc5322_date_time.rl
233
+ - lib/mail/parsers/rfc5322_lexical_tokens.rl
244
234
  - lib/mail/part.rb
245
235
  - lib/mail/parts_list.rb
246
236
  - lib/mail/utilities.rb
@@ -270,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
270
260
  version: '0'
271
261
  requirements: []
272
262
  rubyforge_project:
273
- rubygems_version: 2.4.2
263
+ rubygems_version: 2.7.6
274
264
  signing_key:
275
265
  specification_version: 4
276
266
  summary: Mail provides a nice Ruby DSL for making, sending and reading emails.