Mail Component - uniqcle/Yii2 GitHub Wiki

В файле frontend/config/main.php

YANDEX

если акк на яндексе/почта или через яндекс приходит.

в файле 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>
⚠️ **GitHub.com Fallback** ⚠️