app/Http/Controllers/MessageController.php
private function deliverMessage(Tree $tree, UserInterface $sender, UserInterface $recipient, string $subject, string $body, string $url, string $ip): bool
    {
        $success = true;

        // Temporarily switch to the recipient's language
        I18N::init($recipient->getPreference('language'));

        $body_text = view('emails/message-user-text', [
            'sender'    => $sender,
            'recipient' => $recipient,
            'message'   => $body,
            'url'       => $url,
        ]);

        $body_html = view('emails/message-user-html', [
            'sender'    => $sender,
            'recipient' => $recipient,
            'message'   => $body,
            'url'       => $url,
        ]);

        // Send via the internal messaging system.
        if ($this->sendInternalMessage($recipient)) {
            DB::table('message')->insert([
                'sender'     => Auth::check() ? Auth::user()->email() : $sender->email(),
                'ip_address' => $ip,
                'user_id'    => $recipient->id(),
                'subject'    => $subject,
                'body'       => $body_text,
            ]);
        }

        // Send via email
        if ($this->sendEmail($recipient)) {
            $success = Mail::send(
                new TreeUser($tree),
                $recipient,
                $sender,
                I18N::translate('webtrees message') . ' - ' . $subject,
                $body_text,
                $body_html
            );
        }

        I18N::init(WT_LOCALE);

        return $success;
    }
private function deliverMessage(Tree $tree, UserInterface $sender, UserInterface $recipient, string $subject, string $body, string $url, string $ip): bool
    {
        $success = true;

        // Temporarily switch to the recipient's language
        I18N::init($recipient->getPreference('language'));

        $body_text = view('emails/message-user-text', [
            'sender'    => $sender,
            'recipient' => $recipient,
            'message'   => $body,
            'url'       => $url,
        ]);

        $body_html = view('emails/message-user-html', [
            'sender'    => $sender,
            'recipient' => $recipient,
            'message'   => $body,
            'url'       => $url,
        ]);

        // Send via the internal messaging system.
        if ($this->sendInternalMessage($recipient)) {
            DB::table('message')->insert([
                'sender'     => Auth::check() ? Auth::user()->email() : $sender->email(),
                'ip_address' => $ip,
                'user_id'    => $recipient->id(),
                'subject'    => $subject,
                'body'       => $body_text,
            ]);
        }

        // Send via email
        if ($this->sendEmail($recipient)) {
            $success = Mail::send(
                new TreeUser($tree),
                $recipient,
                $sender,
                I18N::translate('webtrees message') . ' - ' . $subject,
                $body_text,
                $body_html
            );
        }

        I18N::init(WT_LOCALE);

        return $success;
    }
private function deliverMessage ( Tree $ tree , UserInterface $ sender , UserInterface $ recipient , string $ subject , string $ body , string $ url , string $ ip ) : bool { $ success = true ; // Temporarily switch to the recipient's language I18N :: init ( $ recipient -> getPreference ( 'language' ) ) ; $ body_text = view ( 'emails/message-user-text' , [ 'sender' => $ sender , 'recipient' => $ recipient , 'message' => $ body , 'url' => $ url , ] ) ; $ body_html = view ( 'emails/message-user-html' , [ 'sender' => $ sender , 'recipient' => $ recipient , 'message' => $ body , 'url' => $ url , ] ) ; // Send via the internal messaging system. if ( $ this -> sendInternalMessage ( $ recipient ) ) { DB :: table ( 'message' ) -> insert ( [ 'sender' => Auth :: check ( ) ? Auth :: user ( ) -> email ( ) : $ sender -> email ( ) , 'ip_address' => $ ip , 'user_id' => $ recipient -> id ( ) , 'subject' => $ subject , 'body' => $ body_text , ] ) ; } // Send via email if ( $ this -> sendEmail ( $ recipient ) ) { $ success = Mail :: send ( new TreeUser ( $ tree ) , $ recipient , $ sender , I18N :: translate ( 'webtrees message' ) . ' - ' . $ subject , $ body_text , $ body_html ) ; } I18N :: init ( WT_LOCALE ) ; return $ success ; }
Add a message to a user's inbox, send it to them via email, or both.

@param Tree          $tree
@param UserInterface $sender
@param UserInterface $recipient
@param string        $subject
@param string        $body
@param string        $url
@param string        $ip

@return bool
Add a message to a user s inbox send it to them via email or both .