net-imap 0.5.2 → 0.5.5
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.
Potentially problematic release.
This version of net-imap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/docs/styles.css +12 -7
- data/lib/net/imap/command_data.rb +32 -0
- data/lib/net/imap/config.rb +5 -3
- data/lib/net/imap/data_lite.rb +11 -10
- data/lib/net/imap/esearch_result.rb +44 -4
- data/lib/net/imap/fetch_data.rb +126 -47
- data/lib/net/imap/response_data.rb +119 -100
- data/lib/net/imap/response_parser.rb +78 -3
- data/lib/net/imap/sasl/anonymous_authenticator.rb +3 -3
- data/lib/net/imap/sasl/cram_md5_authenticator.rb +3 -3
- data/lib/net/imap/sasl/digest_md5_authenticator.rb +8 -8
- data/lib/net/imap/sasl/external_authenticator.rb +2 -2
- data/lib/net/imap/sasl/gs2_header.rb +7 -7
- data/lib/net/imap/sasl/login_authenticator.rb +2 -2
- data/lib/net/imap/sasl/oauthbearer_authenticator.rb +6 -6
- data/lib/net/imap/sasl/plain_authenticator.rb +7 -7
- data/lib/net/imap/sasl/scram_authenticator.rb +8 -8
- data/lib/net/imap/sasl.rb +1 -1
- data/lib/net/imap/search_result.rb +2 -2
- data/lib/net/imap/stringprep/nameprep.rb +1 -1
- data/lib/net/imap/stringprep/trace.rb +4 -4
- data/lib/net/imap/vanished_data.rb +56 -0
- data/lib/net/imap.rb +316 -160
- data/rakelib/rfcs.rake +2 -0
- metadata +4 -6
@@ -4,8 +4,10 @@ module Net
|
|
4
4
|
class IMAP < Protocol
|
5
5
|
autoload :ESearchResult, "#{__dir__}/esearch_result"
|
6
6
|
autoload :FetchData, "#{__dir__}/fetch_data"
|
7
|
+
autoload :UIDFetchData, "#{__dir__}/fetch_data"
|
7
8
|
autoload :SearchResult, "#{__dir__}/search_result"
|
8
9
|
autoload :SequenceSet, "#{__dir__}/sequence_set"
|
10
|
+
autoload :VanishedData, "#{__dir__}/vanished_data"
|
9
11
|
|
10
12
|
# Net::IMAP::ContinuationRequest represents command continuation requests.
|
11
13
|
#
|
@@ -158,13 +160,20 @@ module Net
|
|
158
160
|
# The raw response data.
|
159
161
|
end
|
160
162
|
|
161
|
-
#
|
163
|
+
# ResponseText represents texts of responses.
|
162
164
|
#
|
163
165
|
# The text may be prefixed by a ResponseCode.
|
164
166
|
#
|
165
|
-
# ResponseText is returned from TaggedResponse#data
|
166
|
-
# UntaggedResponse#data
|
167
|
-
# "
|
167
|
+
# ResponseText is returned from TaggedResponse#data or
|
168
|
+
# UntaggedResponse#data for
|
169
|
+
# {"status responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1]:
|
170
|
+
# * every TaggedResponse, name[rdoc-ref:TaggedResponse#name] is always
|
171
|
+
# "+OK+", "+NO+", or "+BAD+".
|
172
|
+
# * any UntaggedResponse when name[rdoc-ref:UntaggedResponse#name] is
|
173
|
+
# "+OK+", "+NO+", "+BAD+", "+PREAUTH+", or "+BYE+".
|
174
|
+
#
|
175
|
+
# Note that these "status responses" are confusingly _not_ the same as the
|
176
|
+
# +STATUS+ UntaggedResponse (see IMAP#status and StatusData).
|
168
177
|
class ResponseText < Struct.new(:code, :text)
|
169
178
|
# Used to avoid an allocation when ResponseText is empty
|
170
179
|
EMPTY = new(nil, "").freeze
|
@@ -182,32 +191,35 @@ module Net
|
|
182
191
|
# Returns the response text, not including any response code
|
183
192
|
end
|
184
193
|
|
185
|
-
#
|
186
|
-
#
|
187
|
-
#
|
188
|
-
#
|
194
|
+
# ResponseCode represents an \IMAP response code, which can be retrieved
|
195
|
+
# from ResponseText#code for
|
196
|
+
# {"status responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1]:
|
197
|
+
# * every TaggedResponse, name[rdoc-ref:TaggedResponse#name] is always
|
198
|
+
# "+OK+", "+NO+", or "+BAD+".
|
199
|
+
# * any UntaggedResponse when name[rdoc-ref:UntaggedResponse#name] is
|
200
|
+
# "+OK+", "+NO+", "+BAD+", "+PREAUTH+", or "+BYE+".
|
201
|
+
#
|
202
|
+
# Note that these "status responses" are confusingly _not_ the same as the
|
203
|
+
# +STATUS+ UntaggedResponse (see IMAP#status and StatusData).
|
189
204
|
#
|
190
205
|
# Some response codes come with additional data which will be parsed by
|
191
206
|
# Net::IMAP. Others return +nil+ for #data, but are used as a
|
192
207
|
# machine-readable annotation for the human-readable ResponseText#text in
|
193
|
-
# the same response.
|
194
|
-
# code text, #data returns the unparsed string.
|
208
|
+
# the same response.
|
195
209
|
#
|
196
210
|
# Untagged response code #data is pushed directly onto Net::IMAP#responses,
|
197
211
|
# keyed by #name, unless it is removed by the command that generated it.
|
198
212
|
# Use Net::IMAP#add_response_handler to view tagged response codes for
|
199
213
|
# command methods that do not return their TaggedResponse.
|
200
214
|
#
|
215
|
+
# == Standard response codes
|
216
|
+
#
|
201
217
|
# \IMAP extensions may define new codes and the data that comes with them.
|
202
218
|
# The IANA {IMAP Response
|
203
219
|
# Codes}[https://www.iana.org/assignments/imap-response-codes/imap-response-codes.xhtml]
|
204
220
|
# registry has links to specifications for all standard response codes.
|
205
|
-
# Response codes are backwards compatible: Servers are allowed to send new
|
206
|
-
# response codes even if the client has not enabled the extension that
|
207
|
-
# defines them. When unknown response code data is encountered, #data
|
208
|
-
# will return an unparsed string.
|
209
221
|
#
|
210
|
-
#
|
222
|
+
# === +IMAP4rev1+ response codes
|
211
223
|
# See [IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501]] {§7.1, "Server
|
212
224
|
# Responses - Status
|
213
225
|
# Responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1] for full
|
@@ -238,24 +250,24 @@ module Net
|
|
238
250
|
# the <tt>\Seen</tt> flag set.
|
239
251
|
# <em>DEPRECATED by IMAP4rev2.</em>
|
240
252
|
#
|
241
|
-
#
|
253
|
+
# === +BINARY+ extension
|
242
254
|
# See {[RFC3516]}[https://www.rfc-editor.org/rfc/rfc3516].
|
243
255
|
# * +UNKNOWN-CTE+, with a tagged +NO+ response, when the server does not
|
244
256
|
# known how to decode a CTE (content-transfer-encoding). #data is +nil+.
|
245
257
|
# See IMAP#fetch.
|
246
258
|
#
|
247
|
-
#
|
259
|
+
# === +UIDPLUS+ extension
|
248
260
|
# See {[RFC4315 §3]}[https://www.rfc-editor.org/rfc/rfc4315#section-3].
|
249
261
|
# * +APPENDUID+, #data is UIDPlusData. See IMAP#append.
|
250
262
|
# * +COPYUID+, #data is UIDPlusData. See IMAP#copy.
|
251
263
|
# * +UIDNOTSTICKY+, #data is +nil+. See IMAP#select.
|
252
264
|
#
|
253
|
-
#
|
265
|
+
# === +SEARCHRES+ extension
|
254
266
|
# See {[RFC5182]}[https://www.rfc-editor.org/rfc/rfc5182].
|
255
267
|
# * +NOTSAVED+, with a tagged +NO+ response, when the search result variable
|
256
268
|
# is not saved. #data is +nil+.
|
257
269
|
#
|
258
|
-
#
|
270
|
+
# === +RFC5530+ response codes
|
259
271
|
# See {[RFC5530]}[https://www.rfc-editor.org/rfc/rfc5530], "IMAP Response
|
260
272
|
# Codes" for the definition of the following response codes, which are all
|
261
273
|
# machine-readable annotations for the human-readable ResponseText#text, and
|
@@ -278,22 +290,22 @@ module Net
|
|
278
290
|
# * +ALREADYEXISTS+
|
279
291
|
# * +NONEXISTENT+
|
280
292
|
#
|
281
|
-
#
|
293
|
+
# === +QRESYNC+ extension
|
282
294
|
# See {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
|
283
295
|
# * +CLOSED+, returned when the currently selected mailbox is closed
|
284
296
|
# implicitly by selecting or examining another mailbox. #data is +nil+.
|
285
297
|
#
|
286
|
-
#
|
298
|
+
# === +IMAP4rev2+ response codes
|
287
299
|
# See {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051] {§7.1, "Server
|
288
300
|
# Responses - Status
|
289
301
|
# Responses"}[https://www.rfc-editor.org/rfc/rfc9051#section-7.1] for full
|
290
302
|
# descriptions of IMAP4rev2 response codes. IMAP4rev2 includes all of the
|
291
|
-
# response codes listed above (except "UNSEEN") and adds the following:
|
303
|
+
# response codes listed above (except "+UNSEEN+") and adds the following:
|
292
304
|
# * +HASCHILDREN+, with a tagged +NO+ response, when a mailbox delete failed
|
293
305
|
# because the server doesn't allow deletion of mailboxes with children.
|
294
306
|
# #data is +nil+.
|
295
307
|
#
|
296
|
-
#
|
308
|
+
# === +CONDSTORE+ extension
|
297
309
|
# See {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
|
298
310
|
# * +NOMODSEQ+, when selecting a mailbox that does not support
|
299
311
|
# mod-sequences. #data is +nil+. See IMAP#select.
|
@@ -303,10 +315,17 @@ module Net
|
|
303
315
|
# since the +UNCHANGEDSINCE+ mod-sequence given to +STORE+ or <tt>UID
|
304
316
|
# STORE</tt>.
|
305
317
|
#
|
306
|
-
#
|
318
|
+
# === +OBJECTID+ extension
|
307
319
|
# See {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
|
308
320
|
# * +MAILBOXID+, #data is a string
|
309
321
|
#
|
322
|
+
# == Extension compatibility
|
323
|
+
#
|
324
|
+
# Response codes are backwards compatible: Servers are allowed to send new
|
325
|
+
# response codes even if the client has not enabled the extension that
|
326
|
+
# defines them. When Net::IMAP does not know how to parse response
|
327
|
+
# code text, #data returns the unparsed string.
|
328
|
+
#
|
310
329
|
class ResponseCode < Struct.new(:name, :data)
|
311
330
|
##
|
312
331
|
# method: name
|
@@ -325,14 +344,9 @@ module Net
|
|
325
344
|
# code data can take.
|
326
345
|
end
|
327
346
|
|
328
|
-
#
|
329
|
-
#
|
330
|
-
#
|
331
|
-
# See [[UIDPLUS[https://www.rfc-editor.org/rfc/rfc4315.html]].
|
332
|
-
#
|
333
|
-
# ==== Capability requirement
|
347
|
+
# UIDPlusData represents the ResponseCode#data that accompanies the
|
348
|
+
# +APPENDUID+ and +COPYUID+ {response codes}[rdoc-ref:ResponseCode].
|
334
349
|
#
|
335
|
-
# The +UIDPLUS+ capability[rdoc-ref:Net::IMAP#capability] must be supported.
|
336
350
|
# A server that supports +UIDPLUS+ should send a UIDPlusData object inside
|
337
351
|
# every TaggedResponse returned by the append[rdoc-ref:Net::IMAP#append],
|
338
352
|
# copy[rdoc-ref:Net::IMAP#copy], move[rdoc-ref:Net::IMAP#move], {uid
|
@@ -340,9 +354,9 @@ module Net
|
|
340
354
|
# move}[rdoc-ref:Net::IMAP#uid_move] commands---unless the destination
|
341
355
|
# mailbox reports +UIDNOTSTICKY+.
|
342
356
|
#
|
343
|
-
|
344
|
-
#
|
345
|
-
|
357
|
+
# == Required capability
|
358
|
+
# Requires either +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315]]
|
359
|
+
# or +IMAP4rev2+ capability.
|
346
360
|
#
|
347
361
|
class UIDPlusData < Struct.new(:uidvalidity, :source_uids, :assigned_uids)
|
348
362
|
##
|
@@ -379,10 +393,8 @@ module Net
|
|
379
393
|
end
|
380
394
|
end
|
381
395
|
|
382
|
-
#
|
383
|
-
#
|
384
|
-
#
|
385
|
-
# Net::IMAP#list returns an array of MailboxList objects.
|
396
|
+
# MailboxList represents the data of an untagged +LIST+ response, for a
|
397
|
+
# _single_ mailbox path. IMAP#list returns an array of MailboxList objects.
|
386
398
|
#
|
387
399
|
class MailboxList < Struct.new(:attr, :delim, :name)
|
388
400
|
##
|
@@ -392,11 +404,11 @@ module Net
|
|
392
404
|
# Returns the name attributes. Each name attribute is a symbol capitalized
|
393
405
|
# by String#capitalize, such as :Noselect (not :NoSelect). For the
|
394
406
|
# semantics of each attribute, see:
|
395
|
-
# *
|
396
|
-
# *
|
397
|
-
# * Net::IMAP@SPECIAL-USE
|
407
|
+
# * Net::IMAP@Basic+Mailbox+Attributes
|
408
|
+
# * Net::IMAP@Mailbox+role+Attributes
|
398
409
|
# * The IANA {IMAP Mailbox Name Attributes
|
399
410
|
# registry}[https://www.iana.org/assignments/imap-mailbox-name-attributes/imap-mailbox-name-attributes.xhtml]
|
411
|
+
# has links to specifications for all standard mailbox attributes.
|
400
412
|
|
401
413
|
##
|
402
414
|
# method: delim
|
@@ -411,16 +423,16 @@ module Net
|
|
411
423
|
# Returns the mailbox name.
|
412
424
|
end
|
413
425
|
|
414
|
-
#
|
415
|
-
# This object can also be a response to GETQUOTAROOT. In the syntax
|
416
|
-
# specification below, the delimiter used with the "#" construct is a
|
417
|
-
# single space (SPACE).
|
426
|
+
# MailboxQuota represents the data of an untagged +QUOTA+ response.
|
418
427
|
#
|
419
|
-
#
|
428
|
+
# IMAP#getquota returns an array of MailboxQuota objects.
|
420
429
|
#
|
421
430
|
# Net::IMAP#getquotaroot returns an array containing both MailboxQuotaRoot
|
422
431
|
# and MailboxQuota objects.
|
423
432
|
#
|
433
|
+
# == Required capability
|
434
|
+
# Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
|
435
|
+
# capability.
|
424
436
|
class MailboxQuota < Struct.new(:mailbox, :usage, :quota)
|
425
437
|
##
|
426
438
|
# method: mailbox
|
@@ -442,12 +454,14 @@ module Net
|
|
442
454
|
#
|
443
455
|
end
|
444
456
|
|
445
|
-
#
|
446
|
-
# response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)
|
457
|
+
# MailboxQuotaRoot represents the data of an untagged +QUOTAROOT+ response.
|
447
458
|
#
|
448
|
-
#
|
449
|
-
#
|
459
|
+
# IMAP#getquotaroot returns an array containing both MailboxQuotaRoot and
|
460
|
+
# MailboxQuota objects.
|
450
461
|
#
|
462
|
+
# == Required capability
|
463
|
+
# Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
|
464
|
+
# capability.
|
451
465
|
class MailboxQuotaRoot < Struct.new(:mailbox, :quotaroots)
|
452
466
|
##
|
453
467
|
# method: mailbox
|
@@ -462,12 +476,13 @@ module Net
|
|
462
476
|
# Zero or more quotaroots that affect the quota on the specified mailbox.
|
463
477
|
end
|
464
478
|
|
465
|
-
#
|
479
|
+
# MailboxACLItem represents the data of an untagged +ACL+ response.
|
466
480
|
#
|
467
|
-
#
|
481
|
+
# IMAP#getacl returns an array of MailboxACLItem objects.
|
468
482
|
#
|
469
|
-
#
|
470
|
-
# +ACL+
|
483
|
+
# == Required capability
|
484
|
+
# Requires +ACL+ [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]]
|
485
|
+
# capability.
|
471
486
|
class MailboxACLItem < Struct.new(:user, :rights, :mailbox)
|
472
487
|
##
|
473
488
|
# method: mailbox
|
@@ -489,11 +504,12 @@ module Net
|
|
489
504
|
# The access rights the indicated #user has to the #mailbox.
|
490
505
|
end
|
491
506
|
|
492
|
-
#
|
493
|
-
#
|
494
|
-
#
|
495
|
-
# Returned by Net::IMAP#namespace, contained inside a Namespaces object.
|
507
|
+
# Namespace represents a _single_ namespace, contained inside a Namespaces
|
508
|
+
# object.
|
496
509
|
#
|
510
|
+
# == Required capability
|
511
|
+
# Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]]
|
512
|
+
# or +IMAP4rev2+ capability.
|
497
513
|
class Namespace < Struct.new(:prefix, :delim, :extensions)
|
498
514
|
##
|
499
515
|
# method: prefix
|
@@ -515,11 +531,14 @@ module Net
|
|
515
531
|
# Extension parameter semantics would be defined by the extension.
|
516
532
|
end
|
517
533
|
|
518
|
-
#
|
519
|
-
#
|
534
|
+
# Namespaces represents the data of an untagged +NAMESPACE+ response,
|
535
|
+
# returned by IMAP#namespace.
|
520
536
|
#
|
521
|
-
#
|
537
|
+
# Contains lists of #personal, #shared, and #other namespaces.
|
522
538
|
#
|
539
|
+
# == Required capability
|
540
|
+
# Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]]
|
541
|
+
# or +IMAP4rev2+ capability.
|
523
542
|
class Namespaces < Struct.new(:personal, :other, :shared)
|
524
543
|
##
|
525
544
|
# method: personal
|
@@ -540,9 +559,9 @@ module Net
|
|
540
559
|
# Returns an array of Shared Namespace objects.
|
541
560
|
end
|
542
561
|
|
543
|
-
#
|
562
|
+
# StatusData represents the contents of an untagged +STATUS+ response.
|
544
563
|
#
|
545
|
-
#
|
564
|
+
# IMAP#status returns the contents of #attr.
|
546
565
|
class StatusData < Struct.new(:mailbox, :attr)
|
547
566
|
##
|
548
567
|
# method: mailbox
|
@@ -563,11 +582,11 @@ module Net
|
|
563
582
|
# [Note]
|
564
583
|
# When the #sender and #reply_to fields are absent or empty, they will
|
565
584
|
# return the same value as #from. Also, fields may return values that are
|
566
|
-
# invalid for well-formed [RFC5322[https://
|
585
|
+
# invalid for well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
567
586
|
# messages when the message is malformed or a draft message.
|
568
587
|
#
|
569
|
-
# See [{IMAP4rev1 §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501
|
570
|
-
# and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051
|
588
|
+
# See [{IMAP4rev1 §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]]
|
589
|
+
# and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2]]
|
571
590
|
# for full description of the envelope fields, and
|
572
591
|
# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
|
573
592
|
#
|
@@ -581,7 +600,7 @@ module Net
|
|
581
600
|
# Returns a string that represents the +Date+ header.
|
582
601
|
#
|
583
602
|
# [Note]
|
584
|
-
# For a well-formed [RFC5322[https://
|
603
|
+
# For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
585
604
|
# message, the #date field must not be +nil+. However it can be +nil+
|
586
605
|
# for a malformed or draft message.
|
587
606
|
|
@@ -607,7 +626,7 @@ module Net
|
|
607
626
|
# returns +nil+ for this envelope field.
|
608
627
|
#
|
609
628
|
# [Note]
|
610
|
-
# For a well-formed [RFC5322[https://
|
629
|
+
# For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
611
630
|
# message, the #from field must not be +nil+. However it can be +nil+
|
612
631
|
# for a malformed or draft message.
|
613
632
|
|
@@ -620,7 +639,7 @@ module Net
|
|
620
639
|
# [Note]
|
621
640
|
# If the <tt>Sender</tt> header is absent, or is present but empty, the
|
622
641
|
# server sets this field to be the same value as #from. Therefore, in a
|
623
|
-
# well-formed [RFC5322[https://
|
642
|
+
# well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] message,
|
624
643
|
# the #sender envelope field must not be +nil+. However it can be
|
625
644
|
# +nil+ for a malformed or draft message.
|
626
645
|
|
@@ -634,7 +653,7 @@ module Net
|
|
634
653
|
# [Note]
|
635
654
|
# If the <tt>Reply-To</tt> header is absent, or is present but empty,
|
636
655
|
# the server sets this field to be the same value as #from. Therefore,
|
637
|
-
# in a well-formed [RFC5322[https://
|
656
|
+
# in a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
638
657
|
# message, the #reply_to envelope field must not be +nil+. However it
|
639
658
|
# can be +nil+ for a malformed or draft message.
|
640
659
|
|
@@ -663,7 +682,7 @@ module Net
|
|
663
682
|
# Returns a string that represents the <tt>In-Reply-To</tt> header.
|
664
683
|
#
|
665
684
|
# [Note]
|
666
|
-
# For a well-formed [RFC5322[https://
|
685
|
+
# For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
667
686
|
# message, the #in_reply_to field, if present, must not be empty. But
|
668
687
|
# it can still return an empty string for malformed messages.
|
669
688
|
#
|
@@ -679,7 +698,7 @@ module Net
|
|
679
698
|
# Returns a string that represents the <tt>Message-ID</tt>.
|
680
699
|
#
|
681
700
|
# [Note]
|
682
|
-
# For a well-formed [RFC5322[https://
|
701
|
+
# For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
|
683
702
|
# message, the #message_id field, if present, must not be empty. But it
|
684
703
|
# can still return an empty string for malformed messages.
|
685
704
|
#
|
@@ -693,10 +712,10 @@ module Net
|
|
693
712
|
# parsed into its component parts by the server. Address objects are
|
694
713
|
# returned within Envelope fields.
|
695
714
|
#
|
696
|
-
#
|
715
|
+
# == Group syntax
|
697
716
|
#
|
698
717
|
# When the #host field is +nil+, this is a special form of address structure
|
699
|
-
# that indicates the [RFC5322[https://
|
718
|
+
# that indicates the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group
|
700
719
|
# syntax. If the #mailbox name field is also +nil+, this is an end-of-group
|
701
720
|
# marker (semicolon in RFC-822 syntax). If the #mailbox name field is
|
702
721
|
# non-+NIL+, this is the start of a group marker, and the mailbox #name
|
@@ -706,7 +725,7 @@ module Net
|
|
706
725
|
# method: name
|
707
726
|
# :call-seq: name -> string or nil
|
708
727
|
#
|
709
|
-
# Returns the [RFC5322[https://
|
728
|
+
# Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address
|
710
729
|
# +display-name+ (or the mailbox +phrase+ in the RFC-822 grammar).
|
711
730
|
|
712
731
|
##
|
@@ -716,28 +735,28 @@ module Net
|
|
716
735
|
# Returns the route from RFC-822 route-addr.
|
717
736
|
#
|
718
737
|
# Note:: Generating this obsolete route addressing syntax is not allowed
|
719
|
-
# by [RFC5322[https://
|
738
|
+
# by [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]. However,
|
720
739
|
# addresses with this syntax must still be accepted and parsed.
|
721
740
|
|
722
741
|
##
|
723
742
|
# method: mailbox
|
724
743
|
# :call-seq: mailbox -> string or nil
|
725
744
|
#
|
726
|
-
# Returns the [RFC5322[https://
|
745
|
+
# Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address
|
727
746
|
# +local-part+, if #host is not +nil+.
|
728
747
|
#
|
729
748
|
# When #host is +nil+, this returns
|
730
|
-
# an [RFC5322[https://
|
749
|
+
# an [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group name and a +nil+
|
731
750
|
# mailbox indicates the end of a group.
|
732
751
|
|
733
752
|
##
|
734
753
|
# method: host
|
735
754
|
# :call-seq: host -> string or nil
|
736
755
|
#
|
737
|
-
# Returns the [RFC5322[https://
|
756
|
+
# Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] addr-spec
|
738
757
|
# +domain+ name.
|
739
758
|
#
|
740
|
-
# +nil+ indicates [RFC5322[https://
|
759
|
+
# +nil+ indicates [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group
|
741
760
|
# syntax.
|
742
761
|
end
|
743
762
|
|
@@ -749,14 +768,14 @@ module Net
|
|
749
768
|
# :call-seq: dsp_type -> string
|
750
769
|
#
|
751
770
|
# Returns the content disposition type, as defined by
|
752
|
-
# [DISPOSITION[https://
|
771
|
+
# [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
|
753
772
|
|
754
773
|
##
|
755
774
|
# method: param
|
756
775
|
# :call-seq: param -> hash
|
757
776
|
#
|
758
777
|
# Returns a hash representing parameters of the Content-Disposition
|
759
|
-
# field, as defined by [DISPOSITION[https://
|
778
|
+
# field, as defined by [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
|
760
779
|
end
|
761
780
|
|
762
781
|
# Net::IMAP::ThreadMember represents a thread-node returned
|
@@ -795,12 +814,12 @@ module Net
|
|
795
814
|
# FetchData#attr value. Although these classes don't share a base class,
|
796
815
|
# this module can be used to pattern match all of them.
|
797
816
|
#
|
798
|
-
# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501
|
799
|
-
# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051
|
817
|
+
# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]
|
818
|
+
# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9]
|
800
819
|
# for full description of all +BODYSTRUCTURE+ fields, and also
|
801
820
|
# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
|
802
821
|
#
|
803
|
-
#
|
822
|
+
# == Classes that include BodyStructure
|
804
823
|
# BodyTypeBasic:: Represents any message parts that are not handled by
|
805
824
|
# BodyTypeText, BodyTypeMessage, or BodyTypeMultipart.
|
806
825
|
# BodyTypeText:: Used by <tt>text/*</tt> parts. Contains all of the
|
@@ -818,8 +837,8 @@ module Net
|
|
818
837
|
# message parts, unless they have a <tt>Content-Type</tt> that is handled by
|
819
838
|
# BodyTypeText, BodyTypeMessage, or BodyTypeMultipart.
|
820
839
|
#
|
821
|
-
# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501
|
822
|
-
# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051
|
840
|
+
# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]
|
841
|
+
# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9]
|
823
842
|
# for full description of all +BODYSTRUCTURE+ fields, and also
|
824
843
|
# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
|
825
844
|
#
|
@@ -836,45 +855,45 @@ module Net
|
|
836
855
|
# :call-seq: media_type -> string
|
837
856
|
#
|
838
857
|
# The top-level media type as defined in
|
839
|
-
# [MIME-IMB[https://
|
858
|
+
# [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
|
840
859
|
|
841
860
|
##
|
842
861
|
# method: subtype
|
843
862
|
# :call-seq: subtype -> string
|
844
863
|
#
|
845
864
|
# The media subtype name as defined in
|
846
|
-
# [MIME-IMB[https://
|
865
|
+
# [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
|
847
866
|
|
848
867
|
##
|
849
868
|
# method: param
|
850
869
|
# :call-seq: param -> string
|
851
870
|
#
|
852
871
|
# Returns a hash that represents parameters as defined in
|
853
|
-
# [MIME-IMB[https://
|
872
|
+
# [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
|
854
873
|
|
855
874
|
##
|
856
875
|
# method: content_id
|
857
876
|
# :call-seq: content_id -> string
|
858
877
|
#
|
859
878
|
# Returns a string giving the content id as defined
|
860
|
-
# in [MIME-IMB[https://
|
861
|
-
# {§7}[https://
|
879
|
+
# in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
|
880
|
+
# {§7}[https://www.rfc-editor.org/rfc/rfc2045#section-7].
|
862
881
|
|
863
882
|
##
|
864
883
|
# method: description
|
865
884
|
# :call-seq: description -> string
|
866
885
|
#
|
867
886
|
# Returns a string giving the content description as defined
|
868
|
-
# in [MIME-IMB[https://
|
869
|
-
# {§8}[https://
|
887
|
+
# in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
|
888
|
+
# {§8}[https://www.rfc-editor.org/rfc/rfc2045#section-8].
|
870
889
|
|
871
890
|
##
|
872
891
|
# method: encoding
|
873
892
|
# :call-seq: encoding -> string
|
874
893
|
#
|
875
894
|
# Returns a string giving the content transfer encoding as defined
|
876
|
-
# in [MIME-IMB[https://
|
877
|
-
# {§6}[https://
|
895
|
+
# in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
|
896
|
+
# {§6}[https://www.rfc-editor.org/rfc/rfc2045#section-6].
|
878
897
|
|
879
898
|
##
|
880
899
|
# method: size
|
@@ -887,7 +906,7 @@ module Net
|
|
887
906
|
# :call-seq: md5 -> string
|
888
907
|
#
|
889
908
|
# Returns a string giving the body MD5 value as defined in
|
890
|
-
# [MD5[https://
|
909
|
+
# [MD5[https://www.rfc-editor.org/rfc/rfc1864]].
|
891
910
|
|
892
911
|
##
|
893
912
|
# method: disposition
|
@@ -895,7 +914,7 @@ module Net
|
|
895
914
|
#
|
896
915
|
# Returns a ContentDisposition object giving the content
|
897
916
|
# disposition, as defined by
|
898
|
-
# [DISPOSITION[https://
|
917
|
+
# [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
|
899
918
|
|
900
919
|
##
|
901
920
|
# method: language
|
@@ -1063,7 +1082,7 @@ module Net
|
|
1063
1082
|
# call-seq: subtype -> string
|
1064
1083
|
#
|
1065
1084
|
# Returns the content subtype name
|
1066
|
-
# as defined in [MIME-IMB[https://
|
1085
|
+
# as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
|
1067
1086
|
|
1068
1087
|
##
|
1069
1088
|
# method: parts
|
@@ -1077,7 +1096,7 @@ module Net
|
|
1077
1096
|
# call-seq: param -> hash
|
1078
1097
|
#
|
1079
1098
|
# Returns a hash that represents parameters
|
1080
|
-
# as defined in [MIME-IMB[https://
|
1099
|
+
# as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
|
1081
1100
|
|
1082
1101
|
##
|
1083
1102
|
# method: disposition
|