@Override
    public boolean sms(final SmsRequest smsRequest) {
        val recipients = Objects.requireNonNull(smsRequest.getRecipients(), "SMS recipients cannot be undefined");
        if (!isSmsSenderDefined() || !smsRequest.isSufficient()) {
            LOGGER.warn("Could not send SMS to [{}]; No from/text is found or SMS settings are undefined.", recipients);
            return false;
        }
        return recipients.stream().anyMatch(Unchecked.predicate(to -> smsSender.send(smsRequest.getFrom(), to, smsRequest.getText())));
    }
This is {@link DefaultCommunicationsManager}.

@author Misagh Moayyed
@since 5.1.0
core/cas-server-core-notifications-api/src/main/java/org/apereo/cas/notifications/DefaultCommunicationsManager.java