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.

@@ -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
- # Net::IMAP::ResponseText represents texts of responses.
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, or from
166
- # UntaggedResponse#data when the response type is a "condition" ("OK", "NO",
167
- # "BAD", "PREAUTH", or "BYE").
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
- # Net::IMAP::ResponseCode represents response codes. Response codes can be
186
- # retrieved from ResponseText#code and can be included in any "condition"
187
- # response: any TaggedResponse and UntaggedResponse when the response type
188
- # is a "condition" ("OK", "NO", "BAD", "PREAUTH", or "BYE").
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. When Net::IMAP does not know how to parse 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
- # ==== +IMAP4rev1+ Response Codes
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
- # ==== +BINARY+ extension
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
- # ==== +UIDPLUS+ extension
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
- # ==== +SEARCHRES+ extension
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
- # ==== +RFC5530+ Response Codes
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
- # ==== +QRESYNC+ extension
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
- # ==== +IMAP4rev2+ Response Codes
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
- # ==== +CONDSTORE+ extension
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
- # ==== +OBJECTID+ extension
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
- # Net::IMAP::UIDPlusData represents the ResponseCode#data that accompanies
329
- # the +APPENDUID+ and +COPYUID+ response codes.
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
- # TODO: support MULTIAPPEND
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
- # Net::IMAP::MailboxList represents contents of the LIST response,
383
- # representing a single mailbox path.
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
- # * rdoc-ref:Net::IMAP@Basic+Mailbox+Attributes
396
- # * rdoc-ref:Net::IMAP@Mailbox+role+Attributes
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
- # Net::IMAP::MailboxQuota represents contents of GETQUOTA response.
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
- # Net:IMAP#getquota returns an array of MailboxQuota objects.
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
- # Net::IMAP::MailboxQuotaRoot represents part of the GETQUOTAROOT
446
- # response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)
457
+ # MailboxQuotaRoot represents the data of an untagged +QUOTAROOT+ response.
447
458
  #
448
- # Net::IMAP#getquotaroot returns an array containing both MailboxQuotaRoot
449
- # and MailboxQuota objects.
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
- # Net::IMAP::MailboxACLItem represents the response from GETACL.
479
+ # MailboxACLItem represents the data of an untagged +ACL+ response.
466
480
  #
467
- # Net::IMAP#getacl returns an array of MailboxACLItem objects.
481
+ # IMAP#getacl returns an array of MailboxACLItem objects.
468
482
  #
469
- # ==== Required capability
470
- # +ACL+ - described in [ACL[https://tools.ietf.org/html/rfc4314]]
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
- # Net::IMAP::Namespace represents a single namespace contained inside a
493
- # NAMESPACE response.
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
- # Net::IMAP::Namespaces represents a +NAMESPACE+ server response, which
519
- # contains lists of #personal, #shared, and #other namespaces.
534
+ # Namespaces represents the data of an untagged +NAMESPACE+ response,
535
+ # returned by IMAP#namespace.
520
536
  #
521
- # Net::IMAP#namespace returns a Namespaces object.
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
- # Net::IMAP::StatusData represents the contents of the STATUS response.
562
+ # StatusData represents the contents of an untagged +STATUS+ response.
544
563
  #
545
- # Net::IMAP#status returns the contents of #attr.
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://tools.ietf.org/html/rfc5322]]
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.html#section-7.4.2]]
570
- # and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2]]
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://tools.ietf.org/html/rfc5322]]
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://tools.ietf.org/html/rfc5322]]
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://tools.ietf.org/html/rfc5322]] message,
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://tools.ietf.org/html/rfc5322]]
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://tools.ietf.org/html/rfc5322]]
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://tools.ietf.org/html/rfc5322]]
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
- # === Group syntax
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://tools.ietf.org/html/rfc5322]] group
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://tools.ietf.org/html/rfc5322]] address
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://tools.ietf.org/html/rfc5322]]. However,
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://tools.ietf.org/html/rfc5322]] address
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://tools.ietf.org/html/rfc5322]] group name and a +nil+
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://tools.ietf.org/html/rfc5322]] addr-spec
756
+ # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] addr-spec
738
757
  # +domain+ name.
739
758
  #
740
- # +nil+ indicates [RFC5322[https://tools.ietf.org/html/rfc5322]] group
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://tools.ietf.org/html/rfc2183]].
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://tools.ietf.org/html/rfc2183]].
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.html#section-7.4.2]
799
- # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2-4.9]
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
- # === Classes that include BodyStructure
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.html#section-7.4.2]
822
- # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2-4.9]
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://tools.ietf.org/html/rfc2045]].
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://tools.ietf.org/html/rfc2045]].
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://tools.ietf.org/html/rfc2045]].
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://tools.ietf.org/html/rfc2045]]
861
- # {§7}[https://tools.ietf.org/html/rfc2045#section-7].
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://tools.ietf.org/html/rfc2045]]
869
- # {§8}[https://tools.ietf.org/html/rfc2045#section-8].
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://tools.ietf.org/html/rfc2045]]
877
- # {§6}[https://tools.ietf.org/html/rfc2045#section-6].
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://tools.ietf.org/html/rfc1864]].
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://tools.ietf.org/html/rfc2183]].
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://tools.ietf.org/html/rfc2045]].
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://tools.ietf.org/html/rfc2045]].
1099
+ # as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
1081
1100
 
1082
1101
  ##
1083
1102
  # method: disposition