# File lib/larch/imap/mailbox.rb, line 274
  def set_flags(guid, flags, merge = false)
    raise ArgumentError, "flags must be an Array" unless flags.is_a?(Array)

    return false unless db_message = fetch_db_message(guid)

    merged_flags    = merge ? (db_message.flags + flags).uniq : flags
    supported_flags = get_supported_flags(merged_flags)

    return true if db_message.flags == supported_flags

    return false if !imap_select
    @imap.safely { @imap.conn.uid_store(db_message.uid, 'FLAGS.SILENT', supported_flags) } unless @imap.options[:dry_run]

    true
  end