diff --git a/README.md b/README.md index 3a5982b5..7fc6d635 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Net::IMAP Net::IMAP implements Internet Message Access Protocol (IMAP) client -functionality. The protocol is described in [IMAP](https://tools.ietf.org/html/rfc3501). +functionality. The protocol is described in [RFC3501](https://www.rfc-editor.org/rfc/rfc3501). ## Installation diff --git a/lib/net/imap.rb b/lib/net/imap.rb index 7223d70b..f788b1d1 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -25,8 +25,8 @@ module Net # Net::IMAP implements Internet Message Access Protocol (\IMAP) client # functionality. The protocol is described - # in {IMAP4rev1 [RFC3501]}[https://tools.ietf.org/html/rfc3501] - # and {IMAP4rev2 [RFC9051]}[https://tools.ietf.org/html/rfc9051]. + # in {IMAP4rev1 [RFC3501]}[https://www.rfc-editor.org/rfc/rfc3501] + # and {IMAP4rev2 [RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051]. # # == \IMAP Overview # @@ -299,15 +299,15 @@ module Net # === Core \IMAP commands # # The following commands are defined either by - # the [IMAP4rev1[https://tools.ietf.org/html/rfc3501]] base specification, or + # the [IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501]] base specification, or # by one of the following extensions: - # [IDLE[https://tools.ietf.org/html/rfc2177]], - # [NAMESPACE[https://tools.ietf.org/html/rfc2342]], - # [UNSELECT[https://tools.ietf.org/html/rfc3691]], - # [ENABLE[https://tools.ietf.org/html/rfc5161]], - # [MOVE[https://tools.ietf.org/html/rfc6851]]. + # [IDLE[https://www.rfc-editor.org/rfc/rfc2177]], + # [NAMESPACE[https://www.rfc-editor.org/rfc/rfc2342]], + # [UNSELECT[https://www.rfc-editor.org/rfc/rfc3691]], + # [ENABLE[https://www.rfc-editor.org/rfc/rfc5161]], + # [MOVE[https://www.rfc-editor.org/rfc/rfc6851]]. # These extensions are widely supported by modern IMAP4rev1 servers and have - # all been integrated into [IMAP4rev2[https://tools.ietf.org/html/rfc9051]]. + # all been integrated into [IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]]. # *NOTE:* Net::IMAP doesn't support IMAP4rev2 yet. # # ==== Any state @@ -404,7 +404,7 @@ module Net # # ==== RFC9051: +IMAP4rev2+ # - # Although IMAP4rev2[https://tools.ietf.org/html/rfc9051] is not supported + # Although IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] is not supported # yet, Net::IMAP supports several extensions that have been folded into it: # +ENABLE+, +IDLE+, +MOVE+, +NAMESPACE+, +SASL-IR+, +UIDPLUS+, +UNSELECT+, # STATUS=SIZE, and the fetch side of +BINARY+. @@ -424,13 +424,13 @@ module Net # - #setquota: sets the resource limits for a given quota root. # # ==== RFC2177: +IDLE+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #idle: Allows the server to send updates to the client, without the client # needing to poll using #noop. # # ==== RFC2342: +NAMESPACE+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #namespace: Returns mailbox namespaces, with path prefixes and delimiters. # @@ -439,7 +439,7 @@ module Net # # ==== RFC3516: +BINARY+ # The fetch side of +BINARY+ has been folded into - # IMAP4rev2[https://tools.ietf.org/html/rfc9051]. + # IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]. # - Updates #fetch and #uid_fetch with the +BINARY+, +BINARY.PEEK+, and # +BINARY.SIZE+ items. See FetchData#binary and FetchData#binary_size. # @@ -447,7 +447,7 @@ module Net # *NOTE:* The binary extension the #append command is _not_ supported yet. # # ==== RFC3691: +UNSELECT+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #unselect: Closes the mailbox and returns to the "_authenticated_" state, # without expunging any messages. @@ -459,7 +459,7 @@ module Net # *NOTE:* +DELETEACL+, +LISTRIGHTS+, and +MYRIGHTS+ are not supported yet. # # ==== RFC4315: +UIDPLUS+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #uid_expunge: Restricts #expunge to only remove the specified UIDs. # - Updates #select, #examine with the +UIDNOTSTICKY+ ResponseCode @@ -467,15 +467,15 @@ module Net # - Updates #copy, #move with the +COPYUID+ ResponseCode # # ==== RFC4731: +ESEARCH+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051]. + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]. # - Updates #search, #uid_search with +return+ options and ESearchResult. # # ==== RFC4959: +SASL-IR+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051]. + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]. # - Updates #authenticate with the option to send an initial response. # # ==== RFC5161: +ENABLE+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #enable: Enables backwards incompatible server extensions. # @@ -499,7 +499,7 @@ module Net # +X-GM-THRID+, but Gmail does not support it (as of 2023-11-10). # # ==== RFC6851: +MOVE+ - # Folded into IMAP4rev2[https://tools.ietf.org/html/rfc9051] and also included + # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]. # - #move, #uid_move: Moves the specified messages to the end of the # specified destination mailbox, expunging them from the current mailbox. @@ -575,57 +575,57 @@ module Net # Gahrns, M., "IMAP4 Multi-Accessed Mailbox Practice", RFC 2180, DOI # 10.17487/RFC2180, July 1997, . # - # [UTF7[https://tools.ietf.org/html/rfc2152]]:: + # [UTF7[https://www.rfc-editor.org/rfc/rfc2152]]:: # Goldsmith, D. and M. Davis, "UTF-7 A Mail-Safe Transformation Format of # Unicode", RFC 2152, DOI 10.17487/RFC2152, May 1997, # . # # === Message envelope and body structure # - # [RFC5322[https://tools.ietf.org/html/rfc5322]]:: + # [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]:: # Resnick, P., Ed., "Internet Message Format", # RFC 5322, DOI 10.17487/RFC5322, October 2008, # . # # Note: obsoletes - # RFC-2822[https://tools.ietf.org/html/rfc2822] (April 2001) and - # RFC-822[https://tools.ietf.org/html/rfc822] (August 1982). + # RFC-2822[https://www.rfc-editor.org/rfc/rfc2822] (April 2001) and + # RFC-822[https://www.rfc-editor.org/rfc/rfc822] (August 1982). # - # [CHARSET[https://tools.ietf.org/html/rfc2978]]:: + # [CHARSET[https://www.rfc-editor.org/rfc/rfc2978]]:: # Freed, N. and J. Postel, "IANA Charset Registration Procedures", BCP 19, # RFC 2978, DOI 10.17487/RFC2978, October 2000, # . # - # [DISPOSITION[https://tools.ietf.org/html/rfc2183]]:: + # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]]:: # Troost, R., Dorner, S., and K. Moore, Ed., "Communicating Presentation # Information in Internet Messages: The Content-Disposition Header # Field", RFC 2183, DOI 10.17487/RFC2183, August 1997, # . # - # [MIME-IMB[https://tools.ietf.org/html/rfc2045]]:: + # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]:: # Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions # (MIME) Part One: Format of Internet Message Bodies", # RFC 2045, DOI 10.17487/RFC2045, November 1996, # . # - # [MIME-IMT[https://tools.ietf.org/html/rfc2046]]:: + # [MIME-IMT[https://www.rfc-editor.org/rfc/rfc2046]]:: # Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions # (MIME) Part Two: Media Types", RFC 2046, DOI 10.17487/RFC2046, # November 1996, . # - # [MIME-HDRS[https://tools.ietf.org/html/rfc2047]]:: + # [MIME-HDRS[https://www.rfc-editor.org/rfc/rfc2047]]:: # Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: # Message Header Extensions for Non-ASCII Text", # RFC 2047, DOI 10.17487/RFC2047, November 1996, # . # - # [RFC2231[https://tools.ietf.org/html/rfc2231]]:: + # [RFC2231[https://www.rfc-editor.org/rfc/rfc2231]]:: # Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word # Extensions: Character Sets, Languages, and Continuations", # RFC 2231, DOI 10.17487/RFC2231, November 1997, # . # - # [I18n-HDRS[https://tools.ietf.org/html/rfc6532]]:: + # [I18n-HDRS[https://www.rfc-editor.org/rfc/rfc6532]]:: # Yang, A., Steele, S., and N. Freed, "Internationalized Email Headers", # RFC 6532, DOI 10.17487/RFC6532, February 2012, # . @@ -641,12 +641,12 @@ module Net # RFC 2557, DOI 10.17487/RFC2557, March 1999, # . # - # [MD5[https://tools.ietf.org/html/rfc1864]]:: + # [MD5[https://www.rfc-editor.org/rfc/rfc1864]]:: # Myers, J. and M. Rose, "The Content-MD5 Header Field", # RFC 1864, DOI 10.17487/RFC1864, October 1995, # . # - # [RFC3503[https://tools.ietf.org/html/rfc3503]]:: + # [RFC3503[https://www.rfc-editor.org/rfc/rfc3503]]:: # Melnikov, A., "Message Disposition Notification (MDN) # profile for Internet Message Access Protocol (IMAP)", # RFC 3503, DOI 10.17487/RFC3503, March 2003, @@ -654,27 +654,27 @@ module Net # # === \IMAP Extensions # - # [QUOTA[https://tools.ietf.org/html/rfc9208]]:: + # [QUOTA[https://www.rfc-editor.org/rfc/rfc9208]]:: # Melnikov, A., "IMAP QUOTA Extension", RFC 9208, DOI 10.17487/RFC9208, # March 2022, . # # Note: obsoletes - # RFC-2087[https://tools.ietf.org/html/rfc2087] (January 1997). + # RFC-2087[https://www.rfc-editor.org/rfc/rfc2087] (January 1997). # Net::IMAP does not fully support the RFC9208 updates yet. - # [IDLE[https://tools.ietf.org/html/rfc2177]]:: + # [IDLE[https://www.rfc-editor.org/rfc/rfc2177]]:: # Leiba, B., "IMAP4 IDLE command", RFC 2177, DOI 10.17487/RFC2177, # June 1997, . - # [NAMESPACE[https://tools.ietf.org/html/rfc2342]]:: + # [NAMESPACE[https://www.rfc-editor.org/rfc/rfc2342]]:: # Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, # DOI 10.17487/RFC2342, May 1998, . - # [ID[https://tools.ietf.org/html/rfc2971]]:: + # [ID[https://www.rfc-editor.org/rfc/rfc2971]]:: # Showalter, T., "IMAP4 ID extension", RFC 2971, DOI 10.17487/RFC2971, # October 2000, . - # [BINARY[https://tools.ietf.org/html/rfc3516]]:: + # [BINARY[https://www.rfc-editor.org/rfc/rfc3516]]:: # Nerenberg, L., "IMAP4 Binary Content Extension", RFC 3516, # DOI 10.17487/RFC3516, April 2003, # . - # [ACL[https://tools.ietf.org/html/rfc4314]]:: + # [ACL[https://www.rfc-editor.org/rfc/rfc4314]]:: # Melnikov, A., "IMAP4 Access Control List (ACL) Extension", RFC 4314, # DOI 10.17487/RFC4314, December 2005, # . @@ -682,33 +682,33 @@ module Net # Crispin, M., "Internet Message Access Protocol (\IMAP) - UIDPLUS # extension", RFC 4315, DOI 10.17487/RFC4315, December 2005, # . - # [SORT[https://tools.ietf.org/html/rfc5256]]:: + # [SORT[https://www.rfc-editor.org/rfc/rfc5256]]:: # Crispin, M. and K. Murchison, "Internet Message Access Protocol - SORT and # THREAD Extensions", RFC 5256, DOI 10.17487/RFC5256, June 2008, # . - # [THREAD[https://tools.ietf.org/html/rfc5256]]:: + # [THREAD[https://www.rfc-editor.org/rfc/rfc5256]]:: # Crispin, M. and K. Murchison, "Internet Message Access Protocol - SORT and # THREAD Extensions", RFC 5256, DOI 10.17487/RFC5256, June 2008, # . # [RFC5530[https://www.rfc-editor.org/rfc/rfc5530.html]]:: # Gulbrandsen, A., "IMAP Response Codes", RFC 5530, DOI 10.17487/RFC5530, # May 2009, . - # [MOVE[https://tools.ietf.org/html/rfc6851]]:: + # [MOVE[https://www.rfc-editor.org/rfc/rfc6851]]:: # Gulbrandsen, A. and N. Freed, Ed., "Internet Message Access Protocol # (\IMAP) - MOVE Extension", RFC 6851, DOI 10.17487/RFC6851, January 2013, # . - # [UTF8=ACCEPT[https://tools.ietf.org/html/rfc6855]]:: - # [UTF8=ONLY[https://tools.ietf.org/html/rfc6855]]:: + # [UTF8=ACCEPT[https://www.rfc-editor.org/rfc/rfc6855]]:: + # [UTF8=ONLY[https://www.rfc-editor.org/rfc/rfc6855]]:: # Resnick, P., Ed., Newman, C., Ed., and S. Shen, Ed., # "IMAP Support for UTF-8", RFC 6855, DOI 10.17487/RFC6855, March 2013, # . - # [CONDSTORE[https://tools.ietf.org/html/rfc7162]]:: - # [QRESYNC[https://tools.ietf.org/html/rfc7162]]:: + # [CONDSTORE[https://www.rfc-editor.org/rfc/rfc7162]]:: + # [QRESYNC[https://www.rfc-editor.org/rfc/rfc7162]]:: # Melnikov, A. and D. Cridland, "IMAP Extensions: Quick Flag Changes # Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization # (QRESYNC)", RFC 7162, DOI 10.17487/RFC7162, May 2014, # . - # [OBJECTID[https://tools.ietf.org/html/rfc8474]]:: + # [OBJECTID[https://www.rfc-editor.org/rfc/rfc8474]]:: # Gondwana, B., Ed., "IMAP Extension for Object Identifiers", # RFC 8474, DOI 10.17487/RFC8474, September 2018, # . @@ -1146,12 +1146,12 @@ def capability # ) # end # - # See [ID[https://tools.ietf.org/html/rfc2971]] for field definitions. + # See [ID[https://www.rfc-editor.org/rfc/rfc2971]] for field definitions. # # ==== Capabilities # # The server's capabilities must include +ID+ - # [RFC2971[https://tools.ietf.org/html/rfc2971]]. + # [RFC2971[https://www.rfc-editor.org/rfc/rfc2971]]. def id(client_id=nil) synchronize do send_command("ID", ClientID.new(client_id)) @@ -1574,7 +1574,7 @@ def list(refname, mailbox) # servers, then folder creation (and listing, moving, etc) can lead to # errors. # - # From RFC2342[https://tools.ietf.org/html/rfc2342]: + # From RFC2342[https://www.rfc-editor.org/rfc/rfc2342]: # >>> # Although typically a server will support only a single Personal # Namespace, and a single Other User's Namespace, circumstances exist @@ -1604,7 +1604,7 @@ def list(refname, mailbox) # ==== Capabilities # # The server's capabilities must include either +IMAP4rev2+ or +NAMESPACE+ - # [RFC2342[https://tools.ietf.org/html/rfc2342]]. + # [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]]. def namespace synchronize do send_command("NAMESPACE") @@ -1666,7 +1666,7 @@ def xlist(refname, mailbox) # ==== Capabilities # # The server's capabilities must include +QUOTA+ - # [RFC2087[https://tools.ietf.org/html/rfc2087]]. + # [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]. def getquotaroot(mailbox) synchronize do send_command("GETQUOTAROOT", mailbox) @@ -1687,7 +1687,7 @@ def getquotaroot(mailbox) # ==== Capabilities # # The server's capabilities must include +QUOTA+ - # [RFC2087[https://tools.ietf.org/html/rfc2087]]. + # [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]. def getquota(mailbox) synchronize do send_command("GETQUOTA", mailbox) @@ -1705,7 +1705,7 @@ def getquota(mailbox) # ==== Capabilities # # The server's capabilities must include +QUOTA+ - # [RFC2087[https://tools.ietf.org/html/rfc2087]]. + # [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]. def setquota(mailbox, quota) if quota.nil? data = '()' @@ -1725,7 +1725,7 @@ def setquota(mailbox, quota) # ==== Capabilities # # The server's capabilities must include +ACL+ - # [RFC4314[https://tools.ietf.org/html/rfc4314]]. + # [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]]. def setacl(mailbox, user, rights) if rights.nil? send_command("SETACL", mailbox, user, "") @@ -1743,7 +1743,7 @@ def setacl(mailbox, user, rights) # ==== Capabilities # # The server's capabilities must include +ACL+ - # [RFC4314[https://tools.ietf.org/html/rfc4314]]. + # [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]]. def getacl(mailbox) synchronize do send_command("GETACL", mailbox) @@ -1905,7 +1905,7 @@ def close # ==== Capabilities # # The server's capabilities must include either +IMAP4rev2+ or +UNSELECT+ - # [RFC3691[https://tools.ietf.org/html/rfc3691]]. + # [RFC3691[https://www.rfc-editor.org/rfc/rfc3691]]. def unselect send_command("UNSELECT") end @@ -1932,8 +1932,8 @@ def unselect # # ==== Capabilities # - # When either QRESYNC[https://tools.ietf.org/html/rfc7162] or - # UIDONLY[https://tools.ietf.org/html/rfc9586] are enabled, #expunge + # When either QRESYNC[https://www.rfc-editor.org/rfc/rfc7162] or + # UIDONLY[https://www.rfc-editor.org/rfc/rfc9586] are enabled, #expunge # returns VanishedData, which contains UIDs---not message sequence # numbers. def expunge @@ -2455,7 +2455,7 @@ def uid_search(...) # list of supported extension fields. # # The server's capabilities must include +CONDSTORE+ - # {[RFC7162]}[https://tools.ietf.org/html/rfc7162] in order to use the + # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162] in order to use the # +changedsince+ argument. Using +changedsince+ implicitly enables the # +CONDSTORE+ extension. # @@ -2567,7 +2567,7 @@ def uid_fetch(...) # Extensions may define new data items to be used with #store. # # The server's capabilities must include +CONDSTORE+ - # {[RFC7162]}[https://tools.ietf.org/html/rfc7162] in order to use the + # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162] in order to use the # +unchangedsince+ argument. Using +unchangedsince+ implicitly enables the # +CONDSTORE+ extension. # @@ -2648,7 +2648,7 @@ def uid_copy(set, mailbox) # ==== Capabilities # # The server's capabilities must include either +IMAP4rev2+ or +MOVE+ - # [RFC6851[https://tools.ietf.org/html/rfc6851]]. + # [RFC6851[https://www.rfc-editor.org/rfc/rfc6851]]. # # If +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315.html]] is # supported, the server's response should include a +COPYUID+ response code @@ -2674,7 +2674,7 @@ def move(set, mailbox) # ==== Capabilities # # The server's capabilities must include either +IMAP4rev2+ or +MOVE+ - # [RFC6851[https://tools.ietf.org/html/rfc6851]]. + # [RFC6851[https://www.rfc-editor.org/rfc/rfc6851]]. # # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled, # #uid_move must be used instead of #move. @@ -2705,7 +2705,7 @@ def uid_move(set, mailbox) # ==== Capabilities # # The server's capabilities must include +SORT+ - # [RFC5256[https://tools.ietf.org/html/rfc5256]]. + # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]]. def sort(sort_keys, search_keys, charset) return sort_internal("SORT", sort_keys, search_keys, charset) end @@ -2720,7 +2720,7 @@ def sort(sort_keys, search_keys, charset) # ==== Capabilities # # The server's capabilities must include +SORT+ - # [RFC5256[https://tools.ietf.org/html/rfc5256]]. + # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]]. def uid_sort(sort_keys, search_keys, charset) return sort_internal("UID SORT", sort_keys, search_keys, charset) end @@ -2745,7 +2745,7 @@ def uid_sort(sort_keys, search_keys, charset) # ==== Capabilities # # The server's capabilities must include +THREAD+ - # [RFC5256[https://tools.ietf.org/html/rfc5256]]. + # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]]. def thread(algorithm, search_keys, charset) return thread_internal("THREAD", algorithm, search_keys, charset) end @@ -2759,7 +2759,7 @@ def thread(algorithm, search_keys, charset) # ==== Capabilities # # The server's capabilities must include +THREAD+ - # [RFC5256[https://tools.ietf.org/html/rfc5256]]. + # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]]. def uid_thread(algorithm, search_keys, charset) return thread_internal("UID THREAD", algorithm, search_keys, charset) end @@ -2778,8 +2778,8 @@ def uid_thread(algorithm, search_keys, charset) # ==== Capabilities # # The server's capabilities must include - # +ENABLE+ [RFC5161[https://tools.ietf.org/html/rfc5161]] - # or +IMAP4REV2+ [RFC9051[https://tools.ietf.org/html/rfc9051]]. + # +ENABLE+ [RFC5161[https://www.rfc-editor.org/rfc/rfc5161]] + # or +IMAP4REV2+ [RFC9051[https://www.rfc-editor.org/rfc/rfc9051]]. # # Additionally, the server capabilities must include a capability matching # each enabled extension (usually the same name as the enabled extension). @@ -2798,7 +2798,7 @@ def uid_thread(algorithm, search_keys, charset) # "UTF8=ACCEPT" or "IMAP4rev2", depending on server # capabilities. # - # ["UTF8=ACCEPT" [RFC6855[https://tools.ietf.org/html/rfc6855]]] + # ["UTF8=ACCEPT" [RFC6855[https://www.rfc-editor.org/rfc/rfc6855]]] # # The server's capabilities must include UTF8=ACCEPT _or_ # UTF8=ONLY. @@ -2817,7 +2817,7 @@ def uid_thread(algorithm, search_keys, charset) # encoding, even if they generally contain UTF-8 data, if they are # text at all. # - # ["UTF8=ONLY" [RFC6855[https://tools.ietf.org/html/rfc6855]]] + # ["UTF8=ONLY" [RFC6855[https://www.rfc-editor.org/rfc/rfc6855]]] # # A server that reports the UTF8=ONLY capability _requires_ that # the client enable("UTF8=ACCEPT") before any mailboxes may be @@ -2890,7 +2890,7 @@ def enable(*capabilities) # ==== Capabilities # # The server's capabilities must include either +IMAP4rev2+ or +IDLE+ - # [RFC2177[https://tools.ietf.org/html/rfc2177]]. + # [RFC2177[https://www.rfc-editor.org/rfc/rfc2177]]. def idle(timeout = nil, &response_handler) raise LocalJumpError, "no block given" unless response_handler diff --git a/lib/net/imap/fetch_data.rb b/lib/net/imap/fetch_data.rb index be2a6508..3d8554b5 100644 --- a/lib/net/imap/fetch_data.rb +++ b/lib/net/imap/fetch_data.rb @@ -313,7 +313,7 @@ def flags; attr["FLAGS"] end # :call-seq: internaldate -> Time or nil # # The internal date and time of the message on the server. This is not - # the date and time in the [RFC5322[https://tools.ietf.org/html/rfc5322]] + # the date and time in the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # header, but rather a date and time which reflects when the message was # received. # @@ -341,7 +341,7 @@ def rfc822; attr["RFC822"] end # :call-seq: rfc822_size -> Integer or nil # - # A number expressing the [RFC5322[https://tools.ietf.org/html/rfc5322]] + # A number expressing the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # size of the message. # # This is the same as getting the value for "RFC822.SIZE" from diff --git a/lib/net/imap/response_data.rb b/lib/net/imap/response_data.rb index 8a74e2b3..108ff29b 100644 --- a/lib/net/imap/response_data.rb +++ b/lib/net/imap/response_data.rb @@ -469,7 +469,7 @@ class MailboxQuotaRoot < Struct.new(:mailbox, :quotaroots) # Net::IMAP#getacl returns an array of MailboxACLItem objects. # # ==== Required capability - # +ACL+ - described in [ACL[https://tools.ietf.org/html/rfc4314]] + # +ACL+ - described in [ACL[https://www.rfc-editor.org/rfc/rfc4314]] class MailboxACLItem < Struct.new(:user, :rights, :mailbox) ## # method: mailbox @@ -565,11 +565,11 @@ class StatusData < Struct.new(:mailbox, :attr) # [Note] # When the #sender and #reply_to fields are absent or empty, they will # return the same value as #from. Also, fields may return values that are - # invalid for well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # invalid for well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # messages when the message is malformed or a draft message. # - # See [{IMAP4rev1 §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501.html#section-7.4.2]] - # and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2]] + # See [{IMAP4rev1 §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2]] + # and [{IMAP4rev2 §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2]] # for full description of the envelope fields, and # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. # @@ -583,7 +583,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # Returns a string that represents the +Date+ header. # # [Note] - # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # message, the #date field must not be +nil+. However it can be +nil+ # for a malformed or draft message. @@ -609,7 +609,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # returns +nil+ for this envelope field. # # [Note] - # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # message, the #from field must not be +nil+. However it can be +nil+ # for a malformed or draft message. @@ -622,7 +622,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # [Note] # If the Sender header is absent, or is present but empty, the # server sets this field to be the same value as #from. Therefore, in a - # well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] message, + # well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] message, # the #sender envelope field must not be +nil+. However it can be # +nil+ for a malformed or draft message. @@ -636,7 +636,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # [Note] # If the Reply-To header is absent, or is present but empty, # the server sets this field to be the same value as #from. Therefore, - # in a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # in a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # message, the #reply_to envelope field must not be +nil+. However it # can be +nil+ for a malformed or draft message. @@ -665,7 +665,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # Returns a string that represents the In-Reply-To header. # # [Note] - # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # message, the #in_reply_to field, if present, must not be empty. But # it can still return an empty string for malformed messages. # @@ -681,7 +681,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # Returns a string that represents the Message-ID. # # [Note] - # For a well-formed [RFC5322[https://tools.ietf.org/html/rfc5322]] + # For a well-formed [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] # message, the #message_id field, if present, must not be empty. But it # can still return an empty string for malformed messages. # @@ -698,7 +698,7 @@ class Envelope < Struct.new(:date, :subject, :from, :sender, :reply_to, # === Group syntax # # When the #host field is +nil+, this is a special form of address structure - # that indicates the [RFC5322[https://tools.ietf.org/html/rfc5322]] group + # that indicates the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group # syntax. If the #mailbox name field is also +nil+, this is an end-of-group # marker (semicolon in RFC-822 syntax). If the #mailbox name field is # non-+NIL+, this is the start of a group marker, and the mailbox #name @@ -708,7 +708,7 @@ class Address < Struct.new(:name, :route, :mailbox, :host) # method: name # :call-seq: name -> string or nil # - # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] address + # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address # +display-name+ (or the mailbox +phrase+ in the RFC-822 grammar). ## @@ -718,28 +718,28 @@ class Address < Struct.new(:name, :route, :mailbox, :host) # Returns the route from RFC-822 route-addr. # # Note:: Generating this obsolete route addressing syntax is not allowed - # by [RFC5322[https://tools.ietf.org/html/rfc5322]]. However, + # by [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]. However, # addresses with this syntax must still be accepted and parsed. ## # method: mailbox # :call-seq: mailbox -> string or nil # - # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] address + # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] address # +local-part+, if #host is not +nil+. # # When #host is +nil+, this returns - # an [RFC5322[https://tools.ietf.org/html/rfc5322]] group name and a +nil+ + # an [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group name and a +nil+ # mailbox indicates the end of a group. ## # method: host # :call-seq: host -> string or nil # - # Returns the [RFC5322[https://tools.ietf.org/html/rfc5322]] addr-spec + # Returns the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] addr-spec # +domain+ name. # - # +nil+ indicates [RFC5322[https://tools.ietf.org/html/rfc5322]] group + # +nil+ indicates [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] group # syntax. end @@ -751,14 +751,14 @@ class ContentDisposition < Struct.new(:dsp_type, :param) # :call-seq: dsp_type -> string # # Returns the content disposition type, as defined by - # [DISPOSITION[https://tools.ietf.org/html/rfc2183]]. + # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]]. ## # method: param # :call-seq: param -> hash # # Returns a hash representing parameters of the Content-Disposition - # field, as defined by [DISPOSITION[https://tools.ietf.org/html/rfc2183]]. + # field, as defined by [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]]. end # Net::IMAP::ThreadMember represents a thread-node returned @@ -797,8 +797,8 @@ def all_seqnos(node = self) # FetchData#attr value. Although these classes don't share a base class, # this module can be used to pattern match all of them. # - # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501.html#section-7.4.2] - # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2-4.9] + # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2] + # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9] # for full description of all +BODYSTRUCTURE+ fields, and also # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. # @@ -820,8 +820,8 @@ module BodyStructure # message parts, unless they have a Content-Type that is handled by # BodyTypeText, BodyTypeMessage, or BodyTypeMultipart. # - # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501.html#section-7.4.2] - # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2-4.9] + # See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2] + # and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9] # for full description of all +BODYSTRUCTURE+ fields, and also # Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. # @@ -838,45 +838,45 @@ class BodyTypeBasic < Struct.new(:media_type, :subtype, # :call-seq: media_type -> string # # The top-level media type as defined in - # [MIME-IMB[https://tools.ietf.org/html/rfc2045]]. + # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]. ## # method: subtype # :call-seq: subtype -> string # # The media subtype name as defined in - # [MIME-IMB[https://tools.ietf.org/html/rfc2045]]. + # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]. ## # method: param # :call-seq: param -> string # # Returns a hash that represents parameters as defined in - # [MIME-IMB[https://tools.ietf.org/html/rfc2045]]. + # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]. ## # method: content_id # :call-seq: content_id -> string # # Returns a string giving the content id as defined - # in [MIME-IMB[https://tools.ietf.org/html/rfc2045]] - # {§7}[https://tools.ietf.org/html/rfc2045#section-7]. + # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]] + # {§7}[https://www.rfc-editor.org/rfc/rfc2045#section-7]. ## # method: description # :call-seq: description -> string # # Returns a string giving the content description as defined - # in [MIME-IMB[https://tools.ietf.org/html/rfc2045]] - # {§8}[https://tools.ietf.org/html/rfc2045#section-8]. + # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]] + # {§8}[https://www.rfc-editor.org/rfc/rfc2045#section-8]. ## # method: encoding # :call-seq: encoding -> string # # Returns a string giving the content transfer encoding as defined - # in [MIME-IMB[https://tools.ietf.org/html/rfc2045]] - # {§6}[https://tools.ietf.org/html/rfc2045#section-6]. + # in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]] + # {§6}[https://www.rfc-editor.org/rfc/rfc2045#section-6]. ## # method: size @@ -889,7 +889,7 @@ class BodyTypeBasic < Struct.new(:media_type, :subtype, # :call-seq: md5 -> string # # Returns a string giving the body MD5 value as defined in - # [MD5[https://tools.ietf.org/html/rfc1864]]. + # [MD5[https://www.rfc-editor.org/rfc/rfc1864]]. ## # method: disposition @@ -897,7 +897,7 @@ class BodyTypeBasic < Struct.new(:media_type, :subtype, # # Returns a ContentDisposition object giving the content # disposition, as defined by - # [DISPOSITION[https://tools.ietf.org/html/rfc2183]]. + # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]]. ## # method: language @@ -1065,7 +1065,7 @@ class BodyTypeMultipart < Struct.new(:media_type, :subtype, # call-seq: subtype -> string # # Returns the content subtype name - # as defined in [MIME-IMB[https://tools.ietf.org/html/rfc2045]]. + # as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]. ## # method: parts @@ -1079,7 +1079,7 @@ class BodyTypeMultipart < Struct.new(:media_type, :subtype, # call-seq: param -> hash # # Returns a hash that represents parameters - # as defined in [MIME-IMB[https://tools.ietf.org/html/rfc2045]]. + # as defined in [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]. ## # method: disposition diff --git a/lib/net/imap/sasl.rb b/lib/net/imap/sasl.rb index 985b08dd..373b036e 100644 --- a/lib/net/imap/sasl.rb +++ b/lib/net/imap/sasl.rb @@ -5,7 +5,7 @@ class IMAP # Pluggable authentication mechanisms for protocols which support SASL # (Simple Authentication and Security Layer), such as IMAP4, SMTP, LDAP, and - # XMPP. {RFC-4422}[https://tools.ietf.org/html/rfc4422] specifies the + # XMPP. {RFC-4422}[https://www.rfc-editor.org/rfc/rfc4422] specifies the # common \SASL framework: # >>> # SASL is conceptually a framework that provides an abstraction layer diff --git a/lib/net/imap/sasl/anonymous_authenticator.rb b/lib/net/imap/sasl/anonymous_authenticator.rb index aa4ecae4..570b7865 100644 --- a/lib/net/imap/sasl/anonymous_authenticator.rb +++ b/lib/net/imap/sasl/anonymous_authenticator.rb @@ -5,7 +5,7 @@ class IMAP < Protocol module SASL # Authenticator for the "+ANONYMOUS+" SASL mechanism, as specified by - # RFC-4505[https://tools.ietf.org/html/rfc4505]. See + # RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. See # Net::IMAP#authenticate. class AnonymousAuthenticator @@ -13,7 +13,7 @@ class AnonymousAuthenticator # characters in length. # # If it contains an "@" sign, the message must be a valid email address - # (+addr-spec+ from RFC-2822[https://tools.ietf.org/html/rfc2822]). + # (+addr-spec+ from RFC-2822[https://www.rfc-editor.org/rfc/rfc2822]). # Email syntax is _not_ validated by AnonymousAuthenticator. # # Otherwise, it can be any UTF8 string which is permitted by the @@ -25,7 +25,7 @@ class AnonymousAuthenticator # new(anonymous_message: "", **) -> authenticator # # Creates an Authenticator for the "+ANONYMOUS+" SASL mechanism, as - # specified in RFC-4505[https://tools.ietf.org/html/rfc4505]. To use + # specified in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. To use # this, see Net::IMAP#authenticate or your client's authentication # method. # diff --git a/lib/net/imap/sasl/cram_md5_authenticator.rb b/lib/net/imap/sasl/cram_md5_authenticator.rb index df2648da..6d4ea0ed 100644 --- a/lib/net/imap/sasl/cram_md5_authenticator.rb +++ b/lib/net/imap/sasl/cram_md5_authenticator.rb @@ -1,16 +1,16 @@ # frozen_string_literal: true # Authenticator for the "+CRAM-MD5+" SASL mechanism, specified in -# RFC2195[https://tools.ietf.org/html/rfc2195]. See Net::IMAP#authenticate. +# RFC2195[https://www.rfc-editor.org/rfc/rfc2195]. See Net::IMAP#authenticate. # # == Deprecated # # +CRAM-MD5+ is obsolete and insecure. It is included for compatibility with # existing servers. -# {draft-ietf-sasl-crammd5-to-historic}[https://tools.ietf.org/html/draft-ietf-sasl-crammd5-to-historic-00.html] +# {draft-ietf-sasl-crammd5-to-historic}[https://www.rfc-editor.org/rfc/draft-ietf-sasl-crammd5-to-historic-00.html] # recommends using +SCRAM-*+ or +PLAIN+ protected by TLS instead. # -# Additionally, RFC8314[https://tools.ietf.org/html/rfc8314] discourage the use +# Additionally, RFC8314[https://www.rfc-editor.org/rfc/rfc8314] discourage the use # of cleartext and recommends TLS version 1.2 or greater be used for all # traffic. With TLS +CRAM-MD5+ is okay, but so is +PLAIN+ class Net::IMAP::SASL::CramMD5Authenticator diff --git a/lib/net/imap/sasl/digest_md5_authenticator.rb b/lib/net/imap/sasl/digest_md5_authenticator.rb index 13a2fd35..a1547568 100644 --- a/lib/net/imap/sasl/digest_md5_authenticator.rb +++ b/lib/net/imap/sasl/digest_md5_authenticator.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true # Net::IMAP authenticator for the +DIGEST-MD5+ SASL mechanism type, specified -# in RFC-2831[https://tools.ietf.org/html/rfc2831]. See Net::IMAP#authenticate. +# in RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]. See Net::IMAP#authenticate. # # == Deprecated # # "+DIGEST-MD5+" has been deprecated by -# RFC-6331[https://tools.ietf.org/html/rfc6331] and should not be relied on for +# RFC-6331[https://www.rfc-editor.org/rfc/rfc6331] and should not be relied on for # security. It is included for compatibility with existing servers. class Net::IMAP::SASL::DigestMD5Authenticator DataFormatError = Net::IMAP::DataFormatError @@ -37,10 +37,10 @@ class Net::IMAP::SASL::DigestMD5Authenticator # Authentication identity: the identity that matches the #password. # - # RFC-2831[https://tools.ietf.org/html/rfc2831] uses the term +username+. + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. # "Authentication identity" is the generic term used by - # RFC-4422[https://tools.ietf.org/html/rfc4422]. - # RFC-4616[https://tools.ietf.org/html/rfc4616] and many later RFCs abbreviate + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs abbreviate # this to +authcid+. attr_reader :username alias authcid username @@ -85,7 +85,7 @@ class Net::IMAP::SASL::DigestMD5Authenticator # must be set appropriately to use authenticators in other protocols. # # If an IANA-registered name isn't available, GSS-API - # (RFC-2743[https://tools.ietf.org/html/rfc2743]) allows the generic name + # (RFC-2743[https://www.rfc-editor.org/rfc/rfc2743]) allows the generic name # "host". attr_reader :service @@ -93,7 +93,7 @@ class Net::IMAP::SASL::DigestMD5Authenticator # # +service_name+ will be ignored when it is +nil+ or identical to +host+. # - # From RFC-2831[https://tools.ietf.org/html/rfc2831]: + # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: # >>> # The service is considered to be replicated if the client's # service-location process involves resolution using standard DNS lookup @@ -176,7 +176,7 @@ def initialize(user = nil, pass = nil, authz = nil, @nc, @stage = {}, STAGE_ONE end - # From RFC-2831[https://tools.ietf.org/html/rfc2831]: + # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: # >>> # Indicates the principal name of the service with which the client wishes # to connect, formed from the serv-type, host, and serv-name. For diff --git a/lib/net/imap/sasl/external_authenticator.rb b/lib/net/imap/sasl/external_authenticator.rb index d324b480..655fb721 100644 --- a/lib/net/imap/sasl/external_authenticator.rb +++ b/lib/net/imap/sasl/external_authenticator.rb @@ -5,7 +5,7 @@ class IMAP < Protocol module SASL # Authenticator for the "+EXTERNAL+" SASL mechanism, as specified by - # RFC-4422[https://tools.ietf.org/html/rfc4422]. See + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. See # Net::IMAP#authenticate. # # The EXTERNAL mechanism requests that the server use client credentials @@ -33,7 +33,7 @@ class ExternalAuthenticator # new(username = nil, **) -> authenticator # # Creates an Authenticator for the "+EXTERNAL+" SASL mechanism, as - # specified in RFC-4422[https://tools.ietf.org/html/rfc4422]. To use + # specified in RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. To use # this, see Net::IMAP#authenticate or your client's authentication # method. # diff --git a/lib/net/imap/sasl/gs2_header.rb b/lib/net/imap/sasl/gs2_header.rb index c20a59ef..bc22a4bd 100644 --- a/lib/net/imap/sasl/gs2_header.rb +++ b/lib/net/imap/sasl/gs2_header.rb @@ -5,15 +5,15 @@ class IMAP < Protocol module SASL # Originally defined for the GS2 mechanism family in - # RFC5801[https://tools.ietf.org/html/rfc5801], + # RFC5801[https://www.rfc-editor.org/rfc/rfc5801], # several different mechanisms start with a GS2 header: - # * +GS2-*+ --- RFC5801[https://tools.ietf.org/html/rfc5801] - # * +SCRAM-*+ --- RFC5802[https://tools.ietf.org/html/rfc5802] + # * +GS2-*+ --- RFC5801[https://www.rfc-editor.org/rfc/rfc5801] + # * +SCRAM-*+ --- RFC5802[https://www.rfc-editor.org/rfc/rfc5802] # (ScramAuthenticator) - # * +SAML20+ --- RFC6595[https://tools.ietf.org/html/rfc6595] - # * +OPENID20+ --- RFC6616[https://tools.ietf.org/html/rfc6616] - # * +OAUTH10A+ --- RFC7628[https://tools.ietf.org/html/rfc7628] - # * +OAUTHBEARER+ --- RFC7628[https://tools.ietf.org/html/rfc7628] + # * +SAML20+ --- RFC6595[https://www.rfc-editor.org/rfc/rfc6595] + # * +OPENID20+ --- RFC6616[https://www.rfc-editor.org/rfc/rfc6616] + # * +OAUTH10A+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] + # * +OAUTHBEARER+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] # (OAuthBearerAuthenticator) # # Classes that include this module must implement +#authzid+. diff --git a/lib/net/imap/sasl/login_authenticator.rb b/lib/net/imap/sasl/login_authenticator.rb index a9686fbe..c461ff07 100644 --- a/lib/net/imap/sasl/login_authenticator.rb +++ b/lib/net/imap/sasl/login_authenticator.rb @@ -3,9 +3,9 @@ # Authenticator for the "+LOGIN+" SASL mechanism. See Net::IMAP#authenticate. # # +LOGIN+ authentication sends the password in cleartext. -# RFC3501[https://tools.ietf.org/html/rfc3501] encourages servers to disable +# RFC3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable # cleartext authentication until after TLS has been negotiated. -# RFC8314[https://tools.ietf.org/html/rfc8314] recommends TLS version 1.2 or +# RFC8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or # greater be used for all traffic, and deprecate cleartext access ASAP. +LOGIN+ # can be secured by TLS encryption. # diff --git a/lib/net/imap/sasl/oauthbearer_authenticator.rb b/lib/net/imap/sasl/oauthbearer_authenticator.rb index 532f1e12..aaf2326d 100644 --- a/lib/net/imap/sasl/oauthbearer_authenticator.rb +++ b/lib/net/imap/sasl/oauthbearer_authenticator.rb @@ -7,7 +7,7 @@ class IMAP < Protocol module SASL # Abstract base class for the SASL mechanisms defined in - # RFC7628[https://tools.ietf.org/html/rfc7628]: + # RFC7628[https://www.rfc-editor.org/rfc/rfc7628]: # * OAUTHBEARER[rdoc-ref:OAuthBearerAuthenticator] # (OAuthBearerAuthenticator) # * OAUTH10A @@ -52,7 +52,7 @@ class OAuthAuthenticator # this may hold information about the failure reason, as JSON. attr_reader :last_server_response - # Creates an RFC7628[https://tools.ietf.org/html/rfc7628] OAuth + # Creates an RFC7628[https://www.rfc-editor.org/rfc/rfc7628] OAuth # authenticator. # # ==== Parameters @@ -126,12 +126,12 @@ def authorization; raise "must be implemented by subclass" end end # Authenticator for the "+OAUTHBEARER+" SASL mechanism, specified in - # RFC7628[https://tools.ietf.org/html/rfc7628]. Authenticates using OAuth - # 2.0 bearer tokens, as described in - # RFC6750[https://tools.ietf.org/html/rfc6750]. Use via + # RFC7628[https://www.rfc-editor.org/rfc/rfc7628]. Authenticates using + # OAuth 2.0 bearer tokens, as described in + # RFC6750[https://www.rfc-editor.org/rfc/rfc6750]. Use via # Net::IMAP#authenticate. # - # RFC6750[https://tools.ietf.org/html/rfc6750] requires Transport Layer + # RFC6750[https://www.rfc-editor.org/rfc/rfc6750] requires Transport Layer # Security (TLS) to secure the protocol interaction between the client and # the resource server. TLS _MUST_ be used for +OAUTHBEARER+ to protect # the bearer token. diff --git a/lib/net/imap/sasl/plain_authenticator.rb b/lib/net/imap/sasl/plain_authenticator.rb index 388177c1..793efc17 100644 --- a/lib/net/imap/sasl/plain_authenticator.rb +++ b/lib/net/imap/sasl/plain_authenticator.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true # Authenticator for the "+PLAIN+" SASL mechanism, specified in -# RFC-4616[https://tools.ietf.org/html/rfc4616]. See Net::IMAP#authenticate. +# RFC-4616[https://www.rfc-editor.org/rfc/rfc4616]. See Net::IMAP#authenticate. # # +PLAIN+ authentication sends the password in cleartext. -# RFC-3501[https://tools.ietf.org/html/rfc3501] encourages servers to disable +# RFC-3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable # cleartext authentication until after TLS has been negotiated. -# RFC-8314[https://tools.ietf.org/html/rfc8314] recommends TLS version 1.2 or +# RFC-8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or # greater be used for all traffic, and deprecate cleartext access ASAP. +PLAIN+ # can be secured by TLS encryption. class Net::IMAP::SASL::PlainAuthenticator @@ -16,11 +16,11 @@ class Net::IMAP::SASL::PlainAuthenticator # Authentication identity: the identity that matches the #password. # - # RFC-2831[https://tools.ietf.org/html/rfc2831] uses the term +username+. + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. # "Authentication identity" is the generic term used by - # RFC-4422[https://tools.ietf.org/html/rfc4422]. - # RFC-4616[https://tools.ietf.org/html/rfc4616] and many later RFCs abbreviate - # this to +authcid+. + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. attr_reader :username alias authcid username diff --git a/lib/net/imap/sasl/scram_authenticator.rb b/lib/net/imap/sasl/scram_authenticator.rb index 141e8321..6b3f2d68 100644 --- a/lib/net/imap/sasl/scram_authenticator.rb +++ b/lib/net/imap/sasl/scram_authenticator.rb @@ -11,7 +11,7 @@ class IMAP module SASL # Abstract base class for the "+SCRAM-*+" family of SASL mechanisms, - # defined in RFC5802[https://tools.ietf.org/html/rfc5802]. Use via + # defined in RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. Use via # Net::IMAP#authenticate. # # Directly supported: @@ -99,11 +99,11 @@ def initialize(username_arg = nil, password_arg = nil, # Authentication identity: the identity that matches the #password. # - # RFC-2831[https://tools.ietf.org/html/rfc2831] uses the term +username+. - # "Authentication identity" is the generic term used by - # RFC-4422[https://tools.ietf.org/html/rfc4422]. - # RFC-4616[https://tools.ietf.org/html/rfc4616] and many later RFCs abbreviate - # this to +authcid+. + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term + # +username+. "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. attr_reader :username alias authcid username @@ -263,7 +263,7 @@ def parse_challenge(challenge) end # Authenticator for the "+SCRAM-SHA-1+" SASL mechanism, defined in - # RFC5802[https://tools.ietf.org/html/rfc5802]. + # RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. # # Uses the "SHA-1" digest algorithm from OpenSSL::Digest. # @@ -273,7 +273,7 @@ class ScramSHA1Authenticator < ScramAuthenticator end # Authenticator for the "+SCRAM-SHA-256+" SASL mechanism, defined in - # RFC7677[https://tools.ietf.org/html/rfc7677]. + # RFC7677[https://www.rfc-editor.org/rfc/rfc7677]. # # Uses the "SHA-256" digest algorithm from OpenSSL::Digest. # diff --git a/lib/net/imap/stringprep/nameprep.rb b/lib/net/imap/stringprep/nameprep.rb index 5cfc8ae2..fb17aec4 100644 --- a/lib/net/imap/stringprep/nameprep.rb +++ b/lib/net/imap/stringprep/nameprep.rb @@ -4,7 +4,7 @@ module Net class IMAP module StringPrep - # Defined in RFC3491[https://tools.ietf.org/html/rfc3491], the +nameprep+ + # Defined in RFC3491[https://www.rfc-editor.org/rfc/rfc3491], the +nameprep+ # profile of "Stringprep" is: # >>> # used by the IDNA protocol for preparing domain names; it is not diff --git a/lib/net/imap/stringprep/trace.rb b/lib/net/imap/stringprep/trace.rb index 63cde9ea..6f605af8 100644 --- a/lib/net/imap/stringprep/trace.rb +++ b/lib/net/imap/stringprep/trace.rb @@ -4,11 +4,11 @@ module Net class IMAP module StringPrep - # Defined in RFC-4505[https://tools.ietf.org/html/rfc4505] §3, The +trace+ + # Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The +trace+ # profile of \StringPrep is used by the +ANONYMOUS+ \SASL mechanism. module Trace - # Defined in RFC-4505[https://tools.ietf.org/html/rfc4505] §3. + # Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3. STRINGPREP_PROFILE = "trace" # >>> @@ -23,7 +23,7 @@ module Trace # No Unicode normalization is required by this profile. NORMALIZATION = nil - # From RFC-4505[https://tools.ietf.org/html/rfc4505] §3, The "trace" + # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" # Profile of "Stringprep": # >>> # Characters from the following tables of [StringPrep] are prohibited: @@ -47,7 +47,7 @@ module Trace module_function - # From RFC-4505[https://tools.ietf.org/html/rfc4505] §3, The "trace" + # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" # Profile of "Stringprep": # >>> # The character repertoire of this profile is Unicode 3.2 [Unicode].