Enviar emails con el API PHP de Mandrill

Hoy voy a enseñarte cómo enviar correos electrónicos transaccionales a través del API PHP de Mandrill.

¿Qué es un email transaccional?

Los emails transaccionales son aquellos correos electrónicos que surgen del funcionamiento habitual de una web, sistema e-commerce, etc.

Enviar emails con el API PHP de Mandrill

Ejemplos de emails transaccionales:

  • Confirmar al usuario que se ha recibido su mensaje a través de un formulario de contacto web
  • Confirmar un pedido

En general, son correos de notificación que se producen porque los usuarios han interactuado con tu website de alguna forma: quieren que les envíes información de algún producto, se han suscrito a tu newsletter, etc.

¿Y qué es Mandrill?

Mandrill es un servicio online para enviar correos transaccionales; se trata de una infraestructura de envío de emails desarrollada por Mailchimp que te permite enviar hasta 12,000 mensajes gratis por mes.

El API de Mandrill es segura

Si te pasas de esa cantidad, entonces comienzas a pagar por este servicio de acuerdo a la interesante escala de precios que puedes consultar en este enlace.

Pues bien, os cuento que recién estoy utilizado Mandrill por primera vez, en uno de mis proyectos, y una de las cosas más me ha gustado es que ofrece la posibilidad de enviar correos por medio de una API, y por medio de un servicio SMTP, como tú prefieras hacerlo.

El API de Mandrill es segura

Los webmasters que utilizáis WordPress probablemente ya sabréis que la función mail de PHP tiene algunas limitaciones por las que algunas veces los correos no se entregan. En algunos escenarios, la función mail de PHP predeterminada que viene con WordPress no asegura al 100% el envío de todos los correos, y entonces es cuando tienes que configurar un servidor SMTP, o bien utilizar servicios como Mandrill.

Sin embargo, utilizar un tercero para enviar los emails introduce un problema de seguridad. Tienes que almacenar las credenciales de acceso a dicho servicio, de modo que si algún día, alguien consiguiera acceder a esas credenciales, podría enviar correos en tu nombre.

Utilizar un tercero para enviar los emails introduce un problema de seguridad

Pero el API de Mandrill es segura. Una vez te registras y accedes a tu panel Mandrill puedes crear varias claves API para cada uno de tus websites, por ejemplo, si tienes 3 webs, pues creas 3 API distintas, cada una para una web.

Además, puedes proteger las llamadas API por IP, como diciendo a Mandrill que solo acepte las llamadas si provienen de la IP de tu servidor dedicado, virtual, etc. Con esto te aseguras de que la funcionalidad Mandrill solo puede ejecutarse si proviene de tus IPs.

También puedes elegir qué llamadas al API quieres habilitar, o dicho de otro modo, puedes establecer políticas de seguridad de privilegio mínimo.

Snippet PHP de ejemplo

La documentación del API de Mandrill está aquí. Entonces, dicho todo lo anterior allá va un snippet básico PHP que puedes utilizar para enviar tus correos transaccionales, espero que te sirva de ayuda como ejemplo, ¡y para que puedas enviar tus correos rápidamente!

<?php

require_once 'vendor/mandrill/mandrill/src/Mandrill.php';

$mandrill = new Mandrill('your_api_key_here');

try { 
    $message = array(
        'subject' => 'Hello, how are you?',
        'text' => 'This is a text message',
        'from_email' => 'info@programarivm.com',
        'to' => array(
            array(
                'email' => 'a_test_user@testing.com',
                'name' => 'info@programarivm.com'
            )
        )
    );
    $result = $mandrill->messages->send($message);    
} catch(Mandrill_Error $e) { 
    echo 'An error occurred while sending this email, please try again or contact us.'; 
}