def set_content_type(m, user_content_type, class_default) # :doc:
        params = m.content_type_parameters || {}
        case
        when user_content_type.present?
          user_content_type
        when m.has_attachments?
          if m.attachments.detect(&:inline?)
            ["multipart", "related", params]
          else
            ["multipart", "mixed", params]
          end
        when m.multipart?
          ["multipart", "alternative", params]
        else
          m.content_type || class_default
        end
      end
def set_content_type(m, user_content_type, class_default) # :doc:
        params = m.content_type_parameters || {}
        case
        when user_content_type.present?
          user_content_type
        when m.has_attachments?
          if m.attachments.detect(&:inline?)
            ["multipart", "related", params]
          else
            ["multipart", "mixed", params]
          end
        when m.multipart?
          ["multipart", "alternative", params]
        else
          m.content_type || class_default
        end
      end
Used by #mail to set the content type of the message.

 It will use the given +user_content_type+, or multipart if the mail
 message has any attachments. If the attachments are inline, the content
 type will be "multipart/related", otherwise "multipart/mixed".

 If there is no content type passed in via headers, and there are no
 attachments, or the message is multipart, then the default content type is
 used.