docs: async def send_message(
          self,
          message: Message,
          sender: str = None,
          recipients: RecipientsType = None,
          mail_options: Iterable[str] = None,
          rcpt_options: Iterable[str] = None,
          timeout: DefaultNumType = _default,
      ) -> SendmailResponseType:
          r"""
          Sends an :class:`email.message.Message` object.
  
          Arguments are as for :meth:`.sendmail`, except that message is an
          :class:`email.message.Message` object.  If sender is None or recipients
          is None, these arguments are taken from the headers of the Message as
          described in RFC 2822.  Regardless of the values of sender and
          recipients, any Bcc field (or Resent-Bcc field, when the Message is a
          resent) of the Message object will not be transmitted.  The Message
          object is then serialized using :class:`email.generator.Generator` and
          :meth:`.sendmail` is called to transmit the message.
  
          'Resent-Date' is a mandatory field if the Message is resent (RFC 2822
          Section 3.6.6). In such a case, we use the 'Resent-\*' fields.
          However, if there is more than one 'Resent-' block there's no way to
          unambiguously determine which one is the most recent in all cases,
          so rather than guess we raise a ``ValueError`` in that case.
  
          :raises ValueError: on more than one Resent header block
          :raises SMTPRecipientsRefused: delivery to all recipients failed
          :raises SMTPResponseException: on invalid response
          """
          header_sender, header_recipients, flat_message = flatten_message(message)
  
          if sender is None:
              sender = header_sender
          if recipients is None:
              recipients = header_recipients
  
          result = await self.sendmail(sender, recipients, flat_message, timeout=timeout)
  
          return result