@@ -53,7 +53,11 @@ class IMAP < Protocol
5353 # * <b><tt>"RFC822.TEXT"</tt></b> --- See #rfc822_text or replace with
5454 # <tt>"BODY[TEXT]"</tt> and #text.
5555 #
56- # Net::IMAP supports dynamic attributes defined by the following extensions:
56+ # Net::IMAP supports static attributes defined by the following extensions:
57+ # * +OBJECTID+ {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html]
58+ # * <b><tt>"EMAILID"</tt></b> --- See #emailid.
59+ # * <b><tt>"THREADID"</tt></b> --- See #threadid.
60+ #
5761 # * +X-GM-EXT-1+ {[non-standard Gmail
5862 # extension]}[https://developers.google.com/gmail/imap/imap-extensions]
5963 # * <b><tt>"X-GM-MSGID"</tt></b> --- unique message ID. Access via #attr.
@@ -462,6 +466,40 @@ def binary_size(*part_nums)
462466 # identified message.
463467 def modseq ; attr [ "MODSEQ" ] end
464468
469+ # :call-seq: emailid -> string or nil
470+ #
471+ # An ObjectID that uniquely identifies the immutable content of a single
472+ # message.
473+ #
474+ # The server must return the same +EMAILID+ for both the source and
475+ # destination messages after a COPY or MOVE command. However, it is
476+ # possible for different messages with the same EMAILID to have different
477+ # mutable attributes, such as flags.
478+ #
479+ # This is the same as getting the value for <tt>"EMAILID"</tt> from
480+ # #attr.
481+ #
482+ # The server must support the +OBJECTID+ extension
483+ # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
484+ def emailid ; attr [ "EMAILID" ] end
485+
486+ # :call-seq: threadid -> string or nil
487+ #
488+ # An ObjectID that uniquely identifies a set of messages that the server
489+ # believes should be grouped together.
490+ #
491+ # It is generally based on some combination of References, In-Reply-To,
492+ # and Subject, but the exact implementation is left up to the server
493+ # implementation. The server should return the same thread identifier for
494+ # related messages, even if they are in different mailboxes.
495+ #
496+ # This is the same as getting the value for <tt>"THREADID"</tt> from
497+ # #attr.
498+ #
499+ # The server must support the +OBJECTID+ extension
500+ # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
501+ def threadid ; attr [ "THREADID" ] end
502+
465503 private
466504
467505 def body_section_attr ( ...) section_attr ( "BODY" , ...) end
0 commit comments