summaryrefslogtreecommitdiff
path: root/lib/net
diff options
context:
space:
mode:
Diffstat (limited to 'lib/net')
-rw-r--r--lib/net/imap.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/net/imap.rb b/lib/net/imap.rb
index 1f9682681e..567cf66809 100644
--- a/lib/net/imap.rb
+++ b/lib/net/imap.rb
@@ -1977,6 +1977,26 @@ module Net
end
end
+ # Net::IMAP::BodyTypeAttachment represents attachment body structures
+ # of messages.
+ #
+ # ==== Fields:
+ #
+ # media_type:: Returns the content media type name.
+ #
+ # subtype:: Returns +nil+.
+ #
+ # param:: Returns a hash that represents parameters.
+ #
+ # multipart?:: Returns false.
+ #
+ class BodyTypeAttachment < Struct.new(:media_type, :subtype,
+ :param)
+ def multipart?
+ return false
+ end
+ end
+
# Net::IMAP::BodyTypeMultipart represents multipart body structures
# of messages.
#
@@ -2347,6 +2367,8 @@ module Net
return body_type_text
when /\A(?:MESSAGE)\z/ni
return body_type_msg
+ when /\A(?:ATTACHMENT)\z/ni
+ return body_type_attachment
else
return body_type_basic
end
@@ -2399,6 +2421,13 @@ module Net
md5, disposition, language, extension)
end
+ def body_type_attachment
+ mtype = case_insensitive_string
+ match(T_SPACE)
+ param = body_fld_param
+ return BodyTypeAttachment.new(mtype, nil, param)
+ end
+
def body_type_mpart
parts = []
while true