protected function sendMail(Message $mail): bool
    {
        $allRecipients = $mail->getTo() + $mail->getCc() + $mail->getBcc();
        $totalNumberOfRecipients = count($allRecipients);
        $actualNumberOfRecipients = 0;
        $exceptionMessage = '';

        try {
            $actualNumberOfRecipients = $mail->send();
        } catch (\Exception $e) {
            $exceptionMessage = $e->getMessage();
            if ($this->logSendingErrors === self::LOG_LEVEL_LOG) {
                $this->systemLogger->logException($e);
            } elseif ($this->logSendingErrors === self::LOG_LEVEL_THROW) {
                throw $e;
            }
        }

        $emailInfo = [
            'recipients' => array_keys($mail->getTo() + $mail->getCc() + $mail->getBcc()),
            'failedRecipients' => $mail->getFailedRecipients(),
            'subject' => $mail->getSubject(),
            'id' => (string)$mail->getHeaders()->get('Message-ID')
        ];
        if (strlen($exceptionMessage) > 0) {
            $emailInfo['exception'] = $exceptionMessage;
        }

        if ($actualNumberOfRecipients < $totalNumberOfRecipients && $this->logSendingErrors === self::LOG_LEVEL_LOG) {
            $this->systemLogger->log(
                sprintf('Could not send an email to all given recipients. Given %s, sent to %s', $totalNumberOfRecipients, $actualNumberOfRecipients),
                LOG_ERR, $emailInfo);
            return false;
        }

        if ($this->logSendingSuccess === self::LOG_LEVEL_LOG) {
            $this->systemLogger->log('Email sent successfully.', LOG_INFO, $emailInfo);
        }
        return true;
    }
protected function sendMail(Message $mail): bool
    {
        $allRecipients = $mail->getTo() + $mail->getCc() + $mail->getBcc();
        $totalNumberOfRecipients = count($allRecipients);
        $actualNumberOfRecipients = 0;
        $exceptionMessage = '';

        try {
            $actualNumberOfRecipients = $mail->send();
        } catch (\Exception $e) {
            $exceptionMessage = $e->getMessage();
            if ($this->logSendingErrors === self::LOG_LEVEL_LOG) {
                $this->systemLogger->logException($e);
            } elseif ($this->logSendingErrors === self::LOG_LEVEL_THROW) {
                throw $e;
            }
        }

        $emailInfo = [
            'recipients' => array_keys($mail->getTo() + $mail->getCc() + $mail->getBcc()),
            'failedRecipients' => $mail->getFailedRecipients(),
            'subject' => $mail->getSubject(),
            'id' => (string)$mail->getHeaders()->get('Message-ID')
        ];
        if (strlen($exceptionMessage) > 0) {
            $emailInfo['exception'] = $exceptionMessage;
        }

        if ($actualNumberOfRecipients < $totalNumberOfRecipients && $this->logSendingErrors === self::LOG_LEVEL_LOG) {
            $this->systemLogger->log(
                sprintf('Could not send an email to all given recipients. Given %s, sent to %s', $totalNumberOfRecipients, $actualNumberOfRecipients),
                LOG_ERR, $emailInfo);
            return false;
        }

        if ($this->logSendingSuccess === self::LOG_LEVEL_LOG) {
            $this->systemLogger->log('Email sent successfully.', LOG_INFO, $emailInfo);
        }
        return true;
    }
protected function sendMail ( Message $ mail ) : bool { $ allRecipients = $ mail -> getTo ( ) + $ mail -> getCc ( ) + $ mail -> getBcc ( ) ; $ totalNumberOfRecipients = count ( $ allRecipients ) ; $ actualNumberOfRecipients = 0 ; $ exceptionMessage = '' ; try { $ actualNumberOfRecipients = $ mail -> send ( ) ; } catch ( \ Exception $ e ) { $ exceptionMessage = $ e -> getMessage ( ) ; if ( $ this -> logSendingErrors === self :: LOG_LEVEL_LOG ) { $ this -> systemLogger -> logException ( $ e ) ; } elseif ( $ this -> logSendingErrors === self :: LOG_LEVEL_THROW ) { throw $ e ; } } $ emailInfo = [ 'recipients' => array_keys ( $ mail -> getTo ( ) + $ mail -> getCc ( ) + $ mail -> getBcc ( ) ) , 'failedRecipients' => $ mail -> getFailedRecipients ( ) , 'subject' => $ mail -> getSubject ( ) , 'id' => ( string ) $ mail -> getHeaders ( ) -> get ( 'Message-ID' ) ] ; if ( strlen ( $ exceptionMessage ) > 0 ) { $ emailInfo [ 'exception' ] = $ exceptionMessage ; } if ( $ actualNumberOfRecipients < $ totalNumberOfRecipients && $ this -> logSendingErrors === self :: LOG_LEVEL_LOG ) { $ this -> systemLogger -> log ( sprintf ( 'Could not send an email to all given recipients. Given %s, sent to %s' , $ totalNumberOfRecipients , $ actualNumberOfRecipients ) , LOG_ERR , $ emailInfo ) ; return false ; } if ( $ this -> logSendingSuccess === self :: LOG_LEVEL_LOG ) { $ this -> systemLogger -> log ( 'Email sent successfully.' , LOG_INFO , $ emailInfo ) ; } return true ; }
Sends a mail and logs or throws any errors, depending on configuration

@param Message $mail
@return boolean TRUE on success, otherwise FALSE
@throws \Exception
Sends a mail and logs or throws any errors depending on configuration