Отправка сообщения на почту

Подскажите как можно сделать например приходит одному пользователю письмо в личный кабинет от другого пользователя, как отправить уведомления на почту тому которому написали, пользователи все с разными почтовыми ящиками
Есть кусок кода

<?= Yii::t('youdate', 'Hello') ?>,

<?= Yii::t('youdate', 'You have new messages') ?>:

<?php foreach ($messages as $message): ?>
<?php printf("%s: %s at %s\n", $message->sender->profile->getDisplayName(), $message->text, Yii::$app->formatter->asDatetime($message->created_at)); ?>
<?php endforeach; ?>

Так тут скорее нужно не то место, где список сообщений выводится, а то, где сообщение отправляется. Там и отправлять письмо на почту получателю.

Может быть вот этот или javascript нужен?

$iconUrl = Url::to(['@themeUrl/static/images/new-messages.png'], true);
?>

<div style="height: 1px; width: 100%; background: #eee; margin-top: 15px; margin-bottom: 15px;"></div>

<p style="text-align:center; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.6; font-weight: normal; margin: 15px 0 15px; padding: 0; color: #777;">
    <?= Yii::t('youdate', 'You have new messages') ?>:
</p>

<table class="box" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; border-radius: 3px;">
    <?php foreach ($messages as $message): ?>
    <?php $messageAttachmentsData = Yii::$app->messageManager->getMessageAttachmentsData($message); ?>
    <tr>
        <td class="w-1p" style="padding-top: 8px; padding-bottom: 8px; width: 1%;">
            <a href="<?= Url::to(['/profile/view', 'username' => $message->sender->username], true) ?>">
                <img src="<?= $message->sender->profile->getAvatarUrl(80, 80) ?>"
                     class="avatar"
                     width="40"
                     height="40" alt="" style="line-height: 100%; border: 0 none; outline: none; text-decoration: none; vertical-align: baseline; font-size: 0; border-radius: 50%; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);">
            </a>
        </td>
        <td class="pl-md" style="font-family: Open Sans, -apple-system, BlinkMacSystemFont, Roboto, Helvetica Neue, Helvetica, Arial, sans-serif; padding-top: 8px; padding-bottom: 8px; padding-left: 16px;">
            <strong style="color: #556; font-size: 14px;"><?= Html::encode($message->sender->profile->getDisplayName()) ?></strong>
            <br>
            <?= Html::encode($message->text) ?>
            <?php foreach ($messageAttachmentsData as $messageAttachment): ?>
                <img src="<?= $messageAttachment['thumbnail'] ?>" alt="<?= Html::encode($message->sender->username) ?>"
                     style="border-radius: 4px; max-width: 100%; height: auto; margin-top: 6px; margin-bottom: 6px;">
            <?php endforeach; ?>
        </td>
    </tr>
    <?php endforeach; ?>
</table>

<p style="font-size: 14px; line-height: 1.6; margin: 15px 0 10px; background: #2b7ae4; color: #fff; padding: 6px 10px; border-radius: 4px; text-align: center; font-weight: bolder;">
    <a href="<?= Url::to(['/messages/index'], true) ?>" style="color: #fff; text-decoration: none">
        <?= Yii::t('youdate', 'View messages') ?>
    </a>
</p>

Это похоже на вывод содержимого сообщений.

Обычно в норм проекте действия типа отправки обрабатываются не там, где вывод HTML, а в контроллере и т.п.
Если не получается найти – посмотрите в DevTools на какой путь отправляется POST запрос при отправке сообщения, и ищите его поиском по файлам (Ctrl+Shift+F в большинстве текстовых редакторов продвинутее блокнота).

В PHP есть встроенная функция mail(), которую можно использовать для отправки почтовых сообщений. Она принимает следующие параметры:

  • to: адрес получателя
  • subject: тема письма
  • message: тело письма
  • headers: дополнительные заголовки (необязательно)
  • parameters: дополнительные параметры (необязательно)

Простейший пример использования функции mail():

<?php 
mail("E-mail получателя", "Заголовок", "Текст письма \n 1-ая строчка \n 2-ая строчка \n 3-ая строчка"); 
?>

для отправки более сложных сообщений, таких как HTML-письма, или когда вам нужно отправить большое количество писем, лучше использовать библиотеки, такие как PHPMailer.

<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';

$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'test@hostinger-tutorials.com';
$mail->Password = 'EMAIL_ACCOUNT_PASSWORD';
$mail->setFrom('test@hostinger-tutorials.com', 'Mr. Drago');
$mail->addAddress('example@gmail.com', 'Receiver Name');

if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
   $mail->Subject = 'PHPMailer contact form';
   $mail->isHTML(false);
   $mail->Body = <<<EOT
Email: {$_POST['email']}
Name: {$_POST['name']}
Message: {$_POST['message']}
EOT;

   if (!$mail->send()) {
       $msg = 'Sorry, something went wrong. Please try again later.';
   } else {
       $msg = 'Message sent! Thanks for contacting us.';
   }
} else {
   $msg = 'Share it with us!';
}
?>
$mail->addAddress('example@gmail.com', 'Receiver Name');

Сюда вписывается адрес получателя, правильно я понял, а если на сайте пользователь случайный и ты ему отправляешь сообщение, есть какая нибудь инфа что нужно вписать в место почты.

Ну как здесь на форуме, ты мне ответил мне пришло извещение на почту от такого пользователя.

Так я ж говорю, ищите место, где отправка сообщений, и там добавьте отправку на почту.

Или найдите/наймите программиста, который разберется в проекте и это сделает )

а если на сайте пользователь случайный и ты ему отправляешь сообщение

Ну вот на улице ты подходишь к случайному человеку и говоришь: я хочу присылать тебе по почте письма со всяким спамом, давай сюда свой домашний адрес или челюсть сломаю. Человек вежливо диктует тебе свой домашний адрес с почтовым индексом, а ты ему начинаешь присылать свою рекламу.

Бывает, конечно и не так. Бывает что человек идёт в специальное место, на почту, где продаются газеты по подпискам. Но это явно неслучайный человек, да и идёт он не куда попало. Но ты спрашивал про случайного…