Cómo enviar mails con formato usando SwiftMailer

Home / Cómo hacer para... / Cómo enviar mails con formato usando SwiftMailer

Ya he comentado en otros artículos sobre las diferentes posibilidades para enviar emails usando PHP. De todas las que he probado hasta el momento, SwiftMailer es la que me resulta más cómoda y conveniente, sin embargo, he tenido algunas peleas a la hora de enviar mails con formato (es decir, mails que contengan HTML que necesito que sea entendido como tal y no como mero texto).

La verdad es que es bastante simple lograrlo, sólo hay que conocer el método adecuado 🙂

En general, lo que uno hace cuando quiere enviar un email es algo como esto:

$message = (new Swift_Message())
  ->setSubject('Este es el asunto')
  ->setFrom(['mauro.chojrin@leewayweb.com' => 'Mauro Chojrin'])
  ->setTo(['destinatario@dominio.com' => 'Gran Amigo'])
  ->setBody('Este es el importante mensaje que quiero enviarte!!')
  ;

El problema (si puede llamársele así) es que nos hemos olvidado que el mail acompaña a Internet desde sus inicios, con lo cual, el modo default de envío de correos es texto plano (Aunque muy poca gente lo utilice así hoy en día).

Para enviar correos utilizando HTML se debe agregar una parte al correo que así lo especifique. Es decir, en lugar de usar setBody debemos usar addPart:

$message = (new Swift_Message())
  ->setSubject('Este es el asunto')  ->addPart('<p>Este es el <strong>importante</strong> mensaje que quiero enviarte!!</p>')
  ->setFrom(['mauro.chojrin@leewayweb.com' => 'Mauro Chojrin'])
  ->setTo(['destinatario@dominio.com' => 'Gran Amigo'])
  ->addPart('<p>Este es el <strong>importante</strong> mensaje que quiero enviarte!!</p>')
  ;

Si queremos ser muy puritanos, deberíamos incluir ambas versiones (La HTML y la de texto plano) para no perder a aquellas personas que no tienen habilitado el HTML en su cliente de correo (Aunque sinceramente, es muy raro que así sea y si queremos lograr un buen efecto visual, nada como el HTML, CSS y demás).

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *