net-imap 0.5.2 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.

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