def METHOD_NAME(self: DatabaseTask) -> EmailExitState:
    """Sends emails for each relevant connector with applicable user details batched together."""
    logger.info("Starting batched email send...")
    with self.get_new_session() as session:
        privacy_requests: Query = (
            session.query(PrivacyRequest)
            .filter(PrivacyRequest.status == PrivacyRequestStatus.awaiting_email_send)
            .order_by(PrivacyRequest.created_at.asc())  # oldest first
        )
        if not privacy_requests.first():
            logger.info(
                "Skipping batch email send with status: {}",
                EmailExitState.no_applicable_privacy_requests.value,
            )
            return EmailExitState.no_applicable_privacy_requests
        consent_configs: Query = get_consent_email_connection_configs(session)
        erasure_configs: Query = get_erasure_email_connection_configs(session)
        combined_configs = consent_configs.union_all(erasure_configs)
        if not combined_configs.first():
            requeue_privacy_requests_after_email_send(privacy_requests, session)
            logger.info(
                "Skipping batch email send with status: {}",
                EmailExitState.no_applicable_connectors.value,
            )
            return EmailExitState.no_applicable_connectors
        try:
            # erasure
            for connection_config in erasure_configs:
                get_connector(connection_config).batch_email_send(  # type: ignore
                    filter_privacy_requests_by_action_type(
                        privacy_requests, ActionType.erasure
                    )
                )
            # consent
            for connection_config in consent_configs:
                get_connector(connection_config).batch_email_send(  # type: ignore
                    filter_privacy_requests_by_action_type(
                        privacy_requests, ActionType.consent
                    )
                )
        except MessageDispatchException as exc:
            logger.error(
                "Batch email send for connector failed with exception: '{}'",
                exc,
            )
            return EmailExitState.email_send_failed
    requeue_privacy_requests_after_email_send(privacy_requests, session)
    return EmailExitState.complete