Mail Component - uniqcle/Yii2 GitHub Wiki
В файле frontend/config/main.php
если акк на яндексе/почта или через яндекс приходит.
в файле frontend/config/main.php
...
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => $params['adminEmail'], //От кого приходит почта
'password' => $params['adminPassword'],
'port' => '465',
'encryption' => 'ssl', // у яндекса SSL
],
'useFileTransport' => false, // будем отправлять реальные сообщения, а не в файл
],
...
В файле параметров frontend/config/params.php
<?php
return [
...
'adminEmail' => 'it@*****.ru',
'adminName' => 'Андрей',
'adminPassword' => '******'
];
В контроллере frontend/controllers/MailController
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class MailController extends Controller
{
public function actionContact(){
$adminEmail = Yii::$app->params['adminEmail'];
$adminName = Yii::$app->params['adminName'];
$textTitle = "Текст заголовка";
$names = ['Andrey', 'Kirill'];
$anyMessage = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum unde, atque quae exercitationem minus veritatis, distinctio cupiditate temporibus aperiam nihil libero! Dolor, aliquid. Quae dicta facilis voluptate totam ipsam. Explicabo.';
$result = Yii::$app->mailer->compose('contact', [ //шаблон contact в common/mail
'names' => $names,
'anyMessage' => $anyMessage
])
->setFrom( [$adminEmail => $adminName] )
->setTo( '[email protected]' ) // кому отправляем
->setSubject( $textTitle ) // тема письма
/* ->setTextBody('Текст...') // Закомментировать, если передаем в View
->setHtmlBody('Текст...')*/
->send();
if( $result ){
echo 'Сообщение отправлено';
}
}
}
В файле common/mail/contact.php
<?php
echo $anyMessage
?>
111
<table style="border: 1px solid #ddd; border-collapse: collapse; width: 100%;">
<thead>
<tr style="background: #f9f9f9;">
<th style="padding: 8px; border: 1px solid #ddd;">#</th>
<th style="padding: 8px; border: 1px solid #ddd;">Имя</th>
</tr>
</thead>
<tbody>
<?php $i = 1; foreach($names as $name): ?>
<tr>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $i ?></td>
<td style="padding: 8px; border: 1px solid #ddd;"><?= $name ?></td>
</tr>
<?php $i++; endforeach; ?>
</tbody>
</table>