Durante esta charla Nick Canzoneri nos explica cómo el envío de emails funciona a través de Postmark, una plataforma de envío de emails transaccionales que cuenta con una sólida API que hace fácil la implementación en PHP, especialmente en Laravel.
En la charla, Nick detalla de una manera bastante técnica las diferentes partes de cómo un email es procesado por los servidores y los clientes y cómo podemos hacer uso de esta información para obtener más de los emails que enviamos.
Primero explica cómo un servidor capaz de enviar emails obtiene su nombre a través de los registros MX, similar a un DNS, un registro MX hace referencia a dominio que se usa para intercambio de emails “exchange mail” domain.
Mx1.domain.com
Mx2.domain.com
No deben confundirse con un subdominio como beta.domain.com, ya que estos son usados únicamente para envío y recepción de emails.
El siguiente punto trata sobre Email Formatting, o la estructura interna de un mensaje de email, el cual está compuesto de tres partes:
Headers: Contienen la información sobre el mensaje, no el mensaje como tal, ejemplo: From, To, Subject, Date, CC, etc. También se puede hacer uso de custom headers para agregar información adicional al mensaje. Se conocen como X-Headers debido a la convención de la llave que deben usar.
X-some-field = “field value”
Body: Contiene el texto del mensaje, soporta contenido HTML (no Javascript) y también soporta sintaxis CSS.
Content-type header le indica al cliente como mostrar el email, si como texto plano o HTML (o apple-watch), y un mensaje puede contener varios espacios conocidos como boundaries para mostrar diferentes tipos de contenido según el contexto
Clientes de Email no entienden HTML moderno, pero hay varias librerías y servicios que ayudan a generar código que estos puedan entender.
Attachment: Se refiere a los archivos incluidos en el email, como fotografías, PDF, documentos, etc.
Encriptar archivos binarios en base64 es posible pero aumenta el tamaño del email considerablemente
Luego Nick nos explica cómo es necesaria la autenticación en emails ya que siempre hay gente maliciosa que encuentra formas de explotar las vulnerabilidades, y también nos habla de las diferentes formas de realizar esta operación.
Los servidores y clientes reciben la información de autenticación para verificar que el que envía el mensaje es quien dice ser, hay varios métodos de autenticación disponibles actualmente:
SPF: verifica que la IP del servidor es autorizada
DKIM: verifica firmas digitales en el mensaje
DMARC: permite especificar políticas de manejo de autenticación
Actualmente, los clientes más usados verifican emails con los tres métodos.
¿Cómo podemos obtener mas de los emails que enviamos con Postmark?
Bounce: puede darnos la información sobre un email que no fue entregado, con la descripción de qué sucedió con el email, como si el usuario no existe.
Opens: indica cuando los emails fueron abiertos por el que lo recibe, útil para mostrar estadísticas, pero cuidado de no ser muy intrusivo con esta información, también podemos obtener información sobre el cliente.
Inbound: convierte un email a JSON para utilizar esta información en nuestra aplicación para generar acciones específicas dependiendo de la información contenida en el email.
Más sobre Laracon Online
Aquí puedes encontrar un resumen de cada charla del evento
- Jeffrey Way “Laravel Mix.”
- Evan You “Something Vue.js 2.2+ related”
- Rachel Andrew “CSS Grid and Flexbox.”
- Adam Wathan “You Might Not Need a Mocking Framework.”
- Taylor Otwell “Laravel 5.4 internals walkthrough.”
- Jason McCreary “You don’t know Git.”
- Matt Stauffer “Mastering the Illuminate Container.”
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.