symfony Отправка почты SMTP (SwiftMailer) - как настроить, пример кода
Primary tabs
Отправка емаил с помощью SwiftMailer из сервиса (Symfony).
Конфигурация в .env выглядит так:
MAILER_URL=smtp://smtp.mail.ru:465?encryption=ssl&username=<адрес почты, которая будет отправлять>&password=<пароль почты, которая будет отправлять>
Код сервиса:
<?php
namespace App\Service;
use Swift_Mailer;
use Swift_Message;
use Twig_Environment;
class FeedbackMailSender
{
/**
* @var string
*/
private $adminEmail;
/**
* @var string
*/
private $senderEmail;
/**
* @var Twig_Environment
*/
private $twig;
/**
* @var Swift_Mailer
*/
private $mailer;
/**
* @param Swift_Mailer $mailer
* @param string $adminEmail
* @param string $senderEmail
* @param Twig_Environment $twig
*/
public function __construct(
Swift_Mailer $mailer,
string $adminEmail,
string $senderEmail,
Twig_Environment $twig
) {
$this->adminEmail = $adminEmail;
$this->senderEmail = $senderEmail;
$this->twig = $twig;
$this->mailer = $mailer;
}
/**
* @param string $userName
* @param string $userEmail
* @param string $userPhone
* @param string $userMessage
*/
public function sendFeedback(string $userName, string $userEmail, string $userPhone, string $userMessage): void
{
$mail = (new Swift_Message('Feedback Email'))
->setFrom($this->senderEmail)
->setTo($this->adminEmail)
->setBody(
$this->twig->render(
'feedback/feedback_email.html.twig', [
'name' => $userName,
'email' => $userEmail,
'phone' => $userPhone,
'message' => $userMessage,
]),
'text/html');
$this->mailer->send($mail);
}
}- Log in to post comments
- 4825 reads