Estoy trabajando en un proyecto que no usa ningún marco y me gustaría usar el componente Symfony Mailer para manejar el envío de correos electrónicos.
La parte de instalación ( composer require
) se manejó bien y todo está incluido en mi código sin ningún error. Sin embargo, todavía tengo un problema: la documentación del componente parece estar escrita solo para usarlo con el marco Symfony. De hecho, se refiere a archivos de configuración cargados automáticamente que obviamente no existen en mi aplicación.
Esta implementación parece ser muy complicada y me preguntaba si alguno de ustedes ya se enfrentó al mismo problema y qué solución se le ocurrió.
Su pregunta también me hizo preguntarme cómo es fácil enviar correo solo con el componente de correo.
Así que creé un nuevo proyecto desde cero y probé la versión más simple posible siguiendo la documentación del componente de correo .
use Symfony\Component\Mailer\Mailer; use Symfony\Component\Mailer\Transport; use Symfony\Component\Mime\Email; class MyMailer { // googleDns format is gmail+smtp://USERNAME:PASSWORD@default public function __construct(private string $googleDsn) { } public function send() { $template = file_get_contents('https://raw.githubusercontent.com/leemunroe/responsive-html-email-template/master/email.html'); $transport = Transport::fromDsn($this->googleDsn); $mailer = new Mailer($transport); $email = (new Email()) ->from('mygmail@address.com') ->to('thedelivery@gmail.com') ->subject('Time for Symfony Mailer!') ->html($template); $mailer->send($email); } }
Y recibí correctamente mi correo. Envío mi correo con gmail, para su información. La clase de transporte debería hacer el trabajo de envío por ti, pero si no, puedes echar un vistazo a la carpeta de vendor/symfony/mailer/Transport