Просмотр файла app/Services/Mail.php

Размер файла: 1Kb
  1. <?php
  2.  
  3. declare(strict_types=1);
  4.  
  5. namespace App\Services;
  6.  
  7. use Symfony\Component\Mailer\Mailer;
  8. use Symfony\Component\Mailer\Transport;
  9. use Symfony\Component\Mime\Address;
  10. use Symfony\Component\Mime\Email;
  11. use Throwable;
  12.  
  13. /**
  14. * Mail class
  15. */
  16. class Mail
  17. {
  18. /**
  19. * Send email
  20. *
  21. * @param array $data
  22. *
  23. * @return bool
  24. */
  25. public static function send(array $data): bool
  26. {
  27. try {
  28. $transport = Transport::fromDsn(setting('mailer.dsn'));
  29. $mailer = new Mailer($transport);
  30.  
  31. $toAddress = new Address($data['to_email'], $data['to_name'] ?? '');
  32. $fromAddress = new Address($data['from_email'], $data['from_name'] ?? '');
  33.  
  34. $email = (new Email())
  35. ->to($toAddress)
  36. ->from($fromAddress)
  37. ->subject($data['subject'])
  38. ->text($data['text']);
  39.  
  40. $mailer->send($email);
  41. } catch (Throwable) {
  42. return false;
  43. }
  44.  
  45. return true;
  46. }
  47. }