net-imap 0.5.2 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,8 +4,13 @@ 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 :UIDPlusData, "#{__dir__}/uidplus_data"
11
+ autoload :AppendUIDData, "#{__dir__}/uidplus_data"
12
+ autoload :CopyUIDData, "#{__dir__}/uidplus_data"
13
+ autoload :VanishedData, "#{__dir__}/vanished_data"
9
14
 
10
15
  # Net::IMAP::ContinuationRequest represents command continuation requests.
11
16
  #
@@ -158,13 +163,20 @@ module Net
158
163
  # The raw response data.
159
164
  end
160
165
 
161
- # Net::IMAP::ResponseText represents texts of responses.
166
+ # ResponseText represents texts of responses.
162
167
  #
163
168
  # The text may be prefixed by a ResponseCode.
164
169
  #
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").
170
+ # ResponseText is returned from TaggedResponse#data or
171
+ # UntaggedResponse#data for
172
+ # {"status responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1]:
173
+ # * every TaggedResponse, name[rdoc-ref:TaggedResponse#name] is always
174
+ # "+OK+", "+NO+", or "+BAD+".
175
+ # * any UntaggedResponse when name[rdoc-ref:UntaggedResponse#name] is
176
+ # "+OK+", "+NO+", "+BAD+", "+PREAUTH+", or "+BYE+".
177
+ #
178
+ # Note that these "status responses" are confusingly _not_ the same as the
179
+ # +STATUS+ UntaggedResponse (see IMAP#status and StatusData).
168
180
  class ResponseText < Struct.new(:code, :text)
169
181
  # Used to avoid an allocation when ResponseText is empty
170
182
  EMPTY = new(nil, "").freeze
@@ -182,32 +194,35 @@ module Net
182
194
  # Returns the response text, not including any response code
183
195
  end
184
196
 
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").
197
+ # ResponseCode represents an \IMAP response code, which can be retrieved
198
+ # from ResponseText#code for
199
+ # {"status responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1]:
200
+ # * every TaggedResponse, name[rdoc-ref:TaggedResponse#name] is always
201
+ # "+OK+", "+NO+", or "+BAD+".
202
+ # * any UntaggedResponse when name[rdoc-ref:UntaggedResponse#name] is
203
+ # "+OK+", "+NO+", "+BAD+", "+PREAUTH+", or "+BYE+".
204
+ #
205
+ # Note that these "status responses" are confusingly _not_ the same as the
206
+ # +STATUS+ UntaggedResponse (see IMAP#status and StatusData).
189
207
  #
190
208
  # Some response codes come with additional data which will be parsed by
191
209
  # Net::IMAP. Others return +nil+ for #data, but are used as a
192
210
  # 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.
211
+ # the same response.
195
212
  #
196
213
  # Untagged response code #data is pushed directly onto Net::IMAP#responses,
197
214
  # keyed by #name, unless it is removed by the command that generated it.
198
215
  # Use Net::IMAP#add_response_handler to view tagged response codes for
199
216
  # command methods that do not return their TaggedResponse.
200
217
  #
218
+ # == Standard response codes
219
+ #
201
220
  # \IMAP extensions may define new codes and the data that comes with them.
202
221
  # The IANA {IMAP Response
203
222
  # Codes}[https://www.iana.org/assignments/imap-response-codes/imap-response-codes.xhtml]
204
223
  # 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
224
  #
210
- # ==== +IMAP4rev1+ Response Codes
225
+ # === +IMAP4rev1+ response codes
211
226
  # See [IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501]] {§7.1, "Server
212
227
  # Responses - Status
213
228
  # Responses"}[https://www.rfc-editor.org/rfc/rfc3501#section-7.1] for full
@@ -238,24 +253,24 @@ module Net
238
253
  # the <tt>\Seen</tt> flag set.
239
254
  # <em>DEPRECATED by IMAP4rev2.</em>
240
255
  #
241
- # ==== +BINARY+ extension
256
+ # === +BINARY+ extension
242
257
  # See {[RFC3516]}[https://www.rfc-editor.org/rfc/rfc3516].
243
258
  # * +UNKNOWN-CTE+, with a tagged +NO+ response, when the server does not
244
259
  # known how to decode a CTE (content-transfer-encoding). #data is +nil+.
245
260
  # See IMAP#fetch.
246
261
  #
247
- # ==== +UIDPLUS+ extension
262
+ # === +UIDPLUS+ extension
248
263
  # See {[RFC4315 §3]}[https://www.rfc-editor.org/rfc/rfc4315#section-3].
249
264
  # * +APPENDUID+, #data is UIDPlusData. See IMAP#append.
250
265
  # * +COPYUID+, #data is UIDPlusData. See IMAP#copy.
251
266
  # * +UIDNOTSTICKY+, #data is +nil+. See IMAP#select.
252
267
  #
253
- # ==== +SEARCHRES+ extension
268
+ # === +SEARCHRES+ extension
254
269
  # See {[RFC5182]}[https://www.rfc-editor.org/rfc/rfc5182].
255
270
  # * +NOTSAVED+, with a tagged +NO+ response, when the search result variable
256
271
  # is not saved. #data is +nil+.
257
272
  #
258
- # ==== +RFC5530+ Response Codes
273
+ # === +RFC5530+ response codes
259
274
  # See {[RFC5530]}[https://www.rfc-editor.org/rfc/rfc5530], "IMAP Response
260
275
  # Codes" for the definition of the following response codes, which are all
261
276
  # machine-readable annotations for the human-readable ResponseText#text, and
@@ -278,22 +293,22 @@ module Net
278
293
  # * +ALREADYEXISTS+
279
294
  # * +NONEXISTENT+
280
295
  #
281
- # ==== +QRESYNC+ extension
296
+ # === +QRESYNC+ extension
282
297
  # See {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
283
298
  # * +CLOSED+, returned when the currently selected mailbox is closed
284
299
  # implicitly by selecting or examining another mailbox. #data is +nil+.
285
300
  #
286
- # ==== +IMAP4rev2+ Response Codes
301
+ # === +IMAP4rev2+ response codes
287
302
  # See {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051] {§7.1, "Server
288
303
  # Responses - Status
289
304
  # Responses"}[https://www.rfc-editor.org/rfc/rfc9051#section-7.1] for full
290
305
  # descriptions of IMAP4rev2 response codes. IMAP4rev2 includes all of the
291
- # response codes listed above (except "UNSEEN") and adds the following:
306
+ # response codes listed above (except "+UNSEEN+") and adds the following:
292
307
  # * +HASCHILDREN+, with a tagged +NO+ response, when a mailbox delete failed
293
308
  # because the server doesn't allow deletion of mailboxes with children.
294
309
  # #data is +nil+.
295
310
  #
296
- # ==== +CONDSTORE+ extension
311
+ # === +CONDSTORE+ extension
297
312
  # See {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
298
313
  # * +NOMODSEQ+, when selecting a mailbox that does not support
299
314
  # mod-sequences. #data is +nil+. See IMAP#select.
@@ -303,10 +318,17 @@ module Net
303
318
  # since the +UNCHANGEDSINCE+ mod-sequence given to +STORE+ or <tt>UID
304
319
  # STORE</tt>.
305
320
  #
306
- # ==== +OBJECTID+ extension
321
+ # === +OBJECTID+ extension
307
322
  # See {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
308
323
  # * +MAILBOXID+, #data is a string
309
324
  #
325
+ # == Extension compatibility
326
+ #
327
+ # Response codes are backwards compatible: Servers are allowed to send new
328
+ # response codes even if the client has not enabled the extension that
329
+ # defines them. When Net::IMAP does not know how to parse response
330
+ # code text, #data returns the unparsed string.
331
+ #
310
332
  class ResponseCode < Struct.new(:name, :data)
311
333
  ##
312
334
  # method: name
@@ -325,64 +347,8 @@ module Net
325
347
  # code data can take.
326
348
  end
327
349
 
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
334
- #
335
- # The +UIDPLUS+ capability[rdoc-ref:Net::IMAP#capability] must be supported.
336
- # A server that supports +UIDPLUS+ should send a UIDPlusData object inside
337
- # every TaggedResponse returned by the append[rdoc-ref:Net::IMAP#append],
338
- # copy[rdoc-ref:Net::IMAP#copy], move[rdoc-ref:Net::IMAP#move], {uid
339
- # copy}[rdoc-ref:Net::IMAP#uid_copy], and {uid
340
- # move}[rdoc-ref:Net::IMAP#uid_move] commands---unless the destination
341
- # mailbox reports +UIDNOTSTICKY+.
342
- #
343
- #--
344
- # TODO: support MULTIAPPEND
345
- #++
346
- #
347
- class UIDPlusData < Struct.new(:uidvalidity, :source_uids, :assigned_uids)
348
- ##
349
- # method: uidvalidity
350
- # :call-seq: uidvalidity -> nonzero uint32
351
- #
352
- # The UIDVALIDITY of the destination mailbox.
353
-
354
- ##
355
- # method: source_uids
356
- # :call-seq: source_uids -> nil or an array of nonzero uint32
357
- #
358
- # The UIDs of the copied or moved messages.
359
- #
360
- # Note:: Returns +nil+ for Net::IMAP#append.
361
-
362
- ##
363
- # method: assigned_uids
364
- # :call-seq: assigned_uids -> an array of nonzero uint32
365
- #
366
- # The newly assigned UIDs of the copied, moved, or appended messages.
367
- #
368
- # Note:: This always returns an array, even when it contains only one UID.
369
-
370
- ##
371
- # :call-seq: uid_mapping -> nil or a hash
372
- #
373
- # Returns a hash mapping each source UID to the newly assigned destination
374
- # UID.
375
- #
376
- # Note:: Returns +nil+ for Net::IMAP#append.
377
- def uid_mapping
378
- source_uids&.zip(assigned_uids)&.to_h
379
- end
380
- end
381
-
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.
350
+ # MailboxList represents the data of an untagged +LIST+ response, for a
351
+ # _single_ mailbox path. IMAP#list returns an array of MailboxList objects.
386
352
  #
387
353
  class MailboxList < Struct.new(:attr, :delim, :name)
388
354
  ##
@@ -392,11 +358,11 @@ module Net
392
358
  # Returns the name attributes. Each name attribute is a symbol capitalized
393
359
  # by String#capitalize, such as :Noselect (not :NoSelect). For the
394
360
  # 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
361
+ # * Net::IMAP@Basic+Mailbox+Attributes
362
+ # * Net::IMAP@Mailbox+role+Attributes
398
363
  # * The IANA {IMAP Mailbox Name Attributes
399
364
  # registry}[https://www.iana.org/assignments/imap-mailbox-name-attributes/imap-mailbox-name-attributes.xhtml]
365
+ # has links to specifications for all standard mailbox attributes.
400
366
 
401
367
  ##
402
368
  # method: delim
@@ -411,16 +377,16 @@ module Net
411
377
  # Returns the mailbox name.
412
378
  end
413
379
 
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).
380
+ # MailboxQuota represents the data of an untagged +QUOTA+ response.
418
381
  #
419
- # Net:IMAP#getquota returns an array of MailboxQuota objects.
382
+ # IMAP#getquota returns an array of MailboxQuota objects.
420
383
  #
421
384
  # Net::IMAP#getquotaroot returns an array containing both MailboxQuotaRoot
422
385
  # and MailboxQuota objects.
423
386
  #
387
+ # == Required capability
388
+ # Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
389
+ # capability.
424
390
  class MailboxQuota < Struct.new(:mailbox, :usage, :quota)
425
391
  ##
426
392
  # method: mailbox
@@ -442,12 +408,14 @@ module Net
442
408
  #
443
409
  end
444
410
 
445
- # Net::IMAP::MailboxQuotaRoot represents part of the GETQUOTAROOT
446
- # response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)
411
+ # MailboxQuotaRoot represents the data of an untagged +QUOTAROOT+ response.
447
412
  #
448
- # Net::IMAP#getquotaroot returns an array containing both MailboxQuotaRoot
449
- # and MailboxQuota objects.
413
+ # IMAP#getquotaroot returns an array containing both MailboxQuotaRoot and
414
+ # MailboxQuota objects.
450
415
  #
416
+ # == Required capability
417
+ # Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
418
+ # capability.
451
419
  class MailboxQuotaRoot < Struct.new(:mailbox, :quotaroots)
452
420
  ##
453
421
  # method: mailbox
@@ -462,12 +430,13 @@ module Net
462
430
  # Zero or more quotaroots that affect the quota on the specified mailbox.
463
431
  end
464
432
 
465
- # Net::IMAP::MailboxACLItem represents the response from GETACL.
433
+ # MailboxACLItem represents the data of an untagged +ACL+ response.
466
434
  #
467
- # Net::IMAP#getacl returns an array of MailboxACLItem objects.
435
+ # IMAP#getacl returns an array of MailboxACLItem objects.
468
436
  #
469
- # ==== Required capability
470
- # +ACL+ - described in [ACL[https://tools.ietf.org/html/rfc4314]]
437
+ # == Required capability
438
+ # Requires +ACL+ [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]]
439
+ # capability.
471
440
  class MailboxACLItem < Struct.new(:user, :rights, :mailbox)
472
441
  ##
473
442
  # method: mailbox
@@ -489,11 +458,12 @@ module Net
489
458
  # The access rights the indicated #user has to the #mailbox.
490
459
  end
491
460
 
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.
461
+ # Namespace represents a _single_ namespace, contained inside a Namespaces
462
+ # object.
496
463
  #
464
+ # == Required capability
465
+ # Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]]
466
+ # or +IMAP4rev2+ capability.
497
467
  class Namespace < Struct.new(:prefix, :delim, :extensions)
498
468
  ##
499
469
  # method: prefix
@@ -515,11 +485,14 @@ module Net
515
485
  # Extension parameter semantics would be defined by the extension.
516
486
  end
517
487
 
518
- # Net::IMAP::Namespaces represents a +NAMESPACE+ server response, which
519
- # contains lists of #personal, #shared, and #other namespaces.
488
+ # Namespaces represents the data of an untagged +NAMESPACE+ response,
489
+ # returned by IMAP#namespace.
520
490
  #
521
- # Net::IMAP#namespace returns a Namespaces object.
491
+ # Contains lists of #personal, #shared, and #other namespaces.
522
492
  #
493
+ # == Required capability
494
+ # Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]]
495
+ # or +IMAP4rev2+ capability.
523
496
  class Namespaces < Struct.new(:personal, :other, :shared)
524
497
  ##
525
498
  # method: personal
@@ -540,9 +513,9 @@ module Net
540
513
  # Returns an array of Shared Namespace objects.
541
514
  end
542
515
 
543
- # Net::IMAP::StatusData represents the contents of the STATUS response.
516
+ # StatusData represents the contents of an untagged +STATUS+ response.
544
517
  #
545
- # Net::IMAP#status returns the contents of #attr.
518
+ # IMAP#status returns the contents of #attr.
546
519
  class StatusData < Struct.new(:mailbox, :attr)
547
520
  ##
548
521
  # method: mailbox
@@ -563,11 +536,11 @@ module Net
563
536
  # [Note]
564
537
  # When the #sender and #reply_to fields are absent or empty, they will
565
538
  # 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]]
539
+ # invalid for well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
567
540
  # messages when the message is malformed or a draft message.
568
541
  #
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]]
542
+ # See [{IMAP4rev1 §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]]
543
+ # and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2]]
571
544
  # for full description of the envelope fields, and
572
545
  # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
573
546
  #
@@ -581,7 +554,7 @@ module Net
581
554
  # Returns a string that represents the +Date+ header.
582
555
  #
583
556
  # [Note]
584
- # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]]
557
+ # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
585
558
  # message, the #date field must not be +nil+. However it can be +nil+
586
559
  # for a malformed or draft message.
587
560
 
@@ -607,7 +580,7 @@ module Net
607
580
  # returns +nil+ for this envelope field.
608
581
  #
609
582
  # [Note]
610
- # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]]
583
+ # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
611
584
  # message, the #from field must not be +nil+. However it can be +nil+
612
585
  # for a malformed or draft message.
613
586
 
@@ -620,7 +593,7 @@ module Net
620
593
  # [Note]
621
594
  # If the <tt>Sender</tt> header is absent, or is present but empty, the
622
595
  # 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,
596
+ # well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] message,
624
597
  # the #sender envelope field must not be +nil+. However it can be
625
598
  # +nil+ for a malformed or draft message.
626
599
 
@@ -634,7 +607,7 @@ module Net
634
607
  # [Note]
635
608
  # If the <tt>Reply-To</tt> header is absent, or is present but empty,
636
609
  # 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]]
610
+ # in a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
638
611
  # message, the #reply_to envelope field must not be +nil+. However it
639
612
  # can be +nil+ for a malformed or draft message.
640
613
 
@@ -663,7 +636,7 @@ module Net
663
636
  # Returns a string that represents the <tt>In-Reply-To</tt> header.
664
637
  #
665
638
  # [Note]
666
- # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]]
639
+ # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
667
640
  # message, the #in_reply_to field, if present, must not be empty. But
668
641
  # it can still return an empty string for malformed messages.
669
642
  #
@@ -679,7 +652,7 @@ module Net
679
652
  # Returns a string that represents the <tt>Message-ID</tt>.
680
653
  #
681
654
  # [Note]
682
- # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]]
655
+ # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]
683
656
  # message, the #message_id field, if present, must not be empty. But it
684
657
  # can still return an empty string for malformed messages.
685
658
  #
@@ -693,10 +666,10 @@ module Net
693
666
  # parsed into its component parts by the server. Address objects are
694
667
  # returned within Envelope fields.
695
668
  #
696
- # === Group syntax
669
+ # == Group syntax
697
670
  #
698
671
  # 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
672
+ # that indicates the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group
700
673
  # syntax. If the #mailbox name field is also +nil+, this is an end-of-group
701
674
  # marker (semicolon in RFC-822 syntax). If the #mailbox name field is
702
675
  # non-+NIL+, this is the start of a group marker, and the mailbox #name
@@ -706,7 +679,7 @@ module Net
706
679
  # method: name
707
680
  # :call-seq: name -> string or nil
708
681
  #
709
- # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] address
682
+ # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address
710
683
  # +display-name+ (or the mailbox +phrase+ in the RFC-822 grammar).
711
684
 
712
685
  ##
@@ -716,28 +689,28 @@ module Net
716
689
  # Returns the route from RFC-822 route-addr.
717
690
  #
718
691
  # Note:: Generating this obsolete route addressing syntax is not allowed
719
- # by [RFC5322[https://tools.ietf.org/html/rfc5322]]. However,
692
+ # by [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]. However,
720
693
  # addresses with this syntax must still be accepted and parsed.
721
694
 
722
695
  ##
723
696
  # method: mailbox
724
697
  # :call-seq: mailbox -> string or nil
725
698
  #
726
- # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] address
699
+ # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address
727
700
  # +local-part+, if #host is not +nil+.
728
701
  #
729
702
  # When #host is +nil+, this returns
730
- # an [RFC5322[https://tools.ietf.org/html/rfc5322]] group name and a +nil+
703
+ # an [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group name and a +nil+
731
704
  # mailbox indicates the end of a group.
732
705
 
733
706
  ##
734
707
  # method: host
735
708
  # :call-seq: host -> string or nil
736
709
  #
737
- # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] addr-spec
710
+ # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] addr-spec
738
711
  # +domain+ name.
739
712
  #
740
- # +nil+ indicates [RFC5322[https://tools.ietf.org/html/rfc5322]] group
713
+ # +nil+ indicates [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group
741
714
  # syntax.
742
715
  end
743
716
 
@@ -749,14 +722,14 @@ module Net
749
722
  # :call-seq: dsp_type -> string
750
723
  #
751
724
  # Returns the content disposition type, as defined by
752
- # [DISPOSITION[https://tools.ietf.org/html/rfc2183]].
725
+ # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
753
726
 
754
727
  ##
755
728
  # method: param
756
729
  # :call-seq: param -> hash
757
730
  #
758
731
  # Returns a hash representing parameters of the Content-Disposition
759
- # field, as defined by [DISPOSITION[https://tools.ietf.org/html/rfc2183]].
732
+ # field, as defined by [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
760
733
  end
761
734
 
762
735
  # Net::IMAP::ThreadMember represents a thread-node returned
@@ -795,12 +768,12 @@ module Net
795
768
  # FetchData#attr value. Although these classes don't share a base class,
796
769
  # this module can be used to pattern match all of them.
797
770
  #
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]
771
+ # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]
772
+ # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9]
800
773
  # for full description of all +BODYSTRUCTURE+ fields, and also
801
774
  # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
802
775
  #
803
- # === Classes that include BodyStructure
776
+ # == Classes that include BodyStructure
804
777
  # BodyTypeBasic:: Represents any message parts that are not handled by
805
778
  # BodyTypeText, BodyTypeMessage, or BodyTypeMultipart.
806
779
  # BodyTypeText:: Used by <tt>text/*</tt> parts. Contains all of the
@@ -818,8 +791,8 @@ module Net
818
791
  # message parts, unless they have a <tt>Content-Type</tt> that is handled by
819
792
  # BodyTypeText, BodyTypeMessage, or BodyTypeMultipart.
820
793
  #
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]
794
+ # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]
795
+ # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9]
823
796
  # for full description of all +BODYSTRUCTURE+ fields, and also
824
797
  # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs.
825
798
  #
@@ -836,45 +809,45 @@ module Net
836
809
  # :call-seq: media_type -> string
837
810
  #
838
811
  # The top-level media type as defined in
839
- # [MIME-IMB[https://tools.ietf.org/html/rfc2045]].
812
+ # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
840
813
 
841
814
  ##
842
815
  # method: subtype
843
816
  # :call-seq: subtype -> string
844
817
  #
845
818
  # The media subtype name as defined in
846
- # [MIME-IMB[https://tools.ietf.org/html/rfc2045]].
819
+ # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
847
820
 
848
821
  ##
849
822
  # method: param
850
823
  # :call-seq: param -> string
851
824
  #
852
825
  # Returns a hash that represents parameters as defined in
853
- # [MIME-IMB[https://tools.ietf.org/html/rfc2045]].
826
+ # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
854
827
 
855
828
  ##
856
829
  # method: content_id
857
830
  # :call-seq: content_id -> string
858
831
  #
859
832
  # 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].
833
+ # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
834
+ # {§7}[https://www.rfc-editor.org/rfc/rfc2045#section-7].
862
835
 
863
836
  ##
864
837
  # method: description
865
838
  # :call-seq: description -> string
866
839
  #
867
840
  # 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].
841
+ # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
842
+ # {§8}[https://www.rfc-editor.org/rfc/rfc2045#section-8].
870
843
 
871
844
  ##
872
845
  # method: encoding
873
846
  # :call-seq: encoding -> string
874
847
  #
875
848
  # 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].
849
+ # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]
850
+ # {§6}[https://www.rfc-editor.org/rfc/rfc2045#section-6].
878
851
 
879
852
  ##
880
853
  # method: size
@@ -887,7 +860,7 @@ module Net
887
860
  # :call-seq: md5 -> string
888
861
  #
889
862
  # Returns a string giving the body MD5 value as defined in
890
- # [MD5[https://tools.ietf.org/html/rfc1864]].
863
+ # [MD5[https://www.rfc-editor.org/rfc/rfc1864]].
891
864
 
892
865
  ##
893
866
  # method: disposition
@@ -895,7 +868,7 @@ module Net
895
868
  #
896
869
  # Returns a ContentDisposition object giving the content
897
870
  # disposition, as defined by
898
- # [DISPOSITION[https://tools.ietf.org/html/rfc2183]].
871
+ # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]].
899
872
 
900
873
  ##
901
874
  # method: language
@@ -1063,7 +1036,7 @@ module Net
1063
1036
  # call-seq: subtype -> string
1064
1037
  #
1065
1038
  # Returns the content subtype name
1066
- # as defined in [MIME-IMB[https://tools.ietf.org/html/rfc2045]].
1039
+ # as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
1067
1040
 
1068
1041
  ##
1069
1042
  # method: parts
@@ -1077,7 +1050,7 @@ module Net
1077
1050
  # call-seq: param -> hash
1078
1051
  #
1079
1052
  # Returns a hash that represents parameters
1080
- # as defined in [MIME-IMB[https://tools.ietf.org/html/rfc2045]].
1053
+ # as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]].
1081
1054
 
1082
1055
  ##
1083
1056
  # method: disposition