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).
- Cómo agregar una página de error 500 en un proyecto PHP - 31/10/2024
- ¿Cuántos contenedoresnecesita tu php? - 28/10/2024
- Cuál es el mejor framework PHP para hacer APIs REST - 25/10/2024