async def rcpt(
        self,
        recipient: str,
        options: Iterable[str] = None,
        timeout: DefaultNumType = _default,
    ) -> SMTPResponse:
        """
        Send an SMTP RCPT command, which specifies a single recipient for
        the message. This command is sent once per recipient and must be
        preceded by 'MAIL'.

        :raises SMTPRecipientRefused: on unexpected server response code
        """
        await self._ehlo_or_helo_if_needed()

        if options is None:
            options = []

        options_bytes = [option.encode("ascii") for option in options]
        to = b"TO:" + quote_address(recipient).encode("ascii")

        async with self._command_lock:
            response = await self.execute_command(
                b"RCPT", to, *options_bytes, timeout=timeout
            )

        success_codes = (SMTPStatus.completed, SMTPStatus.will_forward)
        if response.code not in success_codes:
            raise SMTPRecipientRefused(response.code, response.message, recipient)

        return response
Send an SMTP RCPT command, which specifies a single recipient for
        the message. This command is sent once per recipient and must be
        preceded by 'MAIL'.

        :raises SMTPRecipientRefused: on unexpected server response code