MvochoaMvochoa
Blog
Configuración del servicio de Mailgun para envió y recepción de correos

30 de junio de 2018

Mailgun, SMTP

Configuración del servicio de Mailgun para envió y recepción de correos

Vamos a configurar una cuenta de mailgun para poder enviar correos y recibir correos de una cuenta como por ejemplo: nombre@dominio.com.

Requisitos para poder configurar la cuenta


  • Es necesario tener una cuenta en: https://mailgun.com/ ya verificada es decir con la validación del correo.
  • Una cuenta en http://digitalocean.com/ para la configurar el dominio. Te recomiendo usar el enlace asi te van a regalar $10 dolares para usar en tu cuenta.
  • Tener un dominio.

Una vez que tengas cumplidos los requisitos, hay que añadir el dominio a la cuenta de mailgun. NO uses un subdominio nunca he logrado que funcione.

Botón de añadir dominio mailgun Formulario para añadir dominio a mailgun

Ahora en DigitalOcean en el apartado de Networking añadimos el dominio. Para que funcione se deben cambiar los NameServers de tu dominio en donde lo compraste por los de DigitalOcean.

  • ns1.digitalocean.com
  • ns2.digitalocean.com
  • ns3.digitalocean.com

Formulario para añadir dominio en DigitalOcean

Ahora registramos todos los DNS Records la información la vamos a copiar de la pagina de mailgun a la de DigitalOcean.

TXT


TXT Mailgun TXT DigitalOcean TXT 2 DigitalOcean

MX


MX Mailgun MX DigitalOcean MX 2 DigitalOcean

CNAME


CNAME Mailgun CNAME DigitalOcean

Listo eso seria la configuración para DigitalOcean, ya solo queda esperar a que se validen los DNS Records pueden tardar de 24 a 48 horas.

Creamos las credenciales SMTP


Hay que crear nuestra cuenta nombre@dominio.com se hace en el apartado de dominios de mailgun y creamos una nueva credencial, en mi caso yo registre el correo mario@mvochoa.com.

Manage SMTP credentials Nueva credencial SMTP

Una vez creado la nueva credencial, tenemos que registrar un ruta para poder redireccionar todos los correos que envíen a mario@mvochoa.com lleguen al correo de Gmail mvochoaa@gmail.com.

Crear ruta mailgun registrar ruta mailgun

Primero vamos a probar y vamos a enviar un correo a mario@mvochoa.com y debemos recibirlo en la cuenta de Gmail.

Enviamos el correo de outlook Enviar email

y lo recibimos en la cuenta de Gmail como vez es para mario@mvochoa.com.

Email recibido

También podemos enviar correos de la cuenta de mario@mvochoa.com, primero vamos a usar el comando curl con el Api Key que se encuentra en la información del dominio en mailgun, para enviar un correo a la misma cuenta de outlook como si le enviáramos una "respuesta".

$ curl -s --user 'api:key-5f34hsf74lsd7bd48b71bc3388a' \
    https://api.mailgun.net/v3/mvochoa.com/messages \
    -F from='Mario Valentin <mario@mvochoa.com>' \
    -F to=vale_ochoa29@hotmail.com \
    -F subject='Respuesta Curl' \
    -F text='Esto es una prueba de la respuesta'

debemos recibir como respuesta del comando:

{
  "id": "<20180630021806.1.3B8671DC0426B708@mvochoa.com>",
  "message": "Queued. Thank you."
}

y con eso debemos recibir el correo en la cuenta de outlook:

Respuesta en outlook

Por ultimo vamos a enviar un correo usando las credenciales SMTP, para eso vamos usar un script en Golang (Go) para enviar el correo.

Las mismas credenciales SMTP se pueden usar en cualquier otro servicio o lenguaje.

package main

import (
	"log"
	"net/smtp"
)

const mime = "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n"

func main() {
	msg := "To: vale_ochoa29@hotmail.com\r\nSubject: Respuesta SMTP\r\n" + mime + "\r\nEsto es una prueba de la respuesta"
	auth := smtp.PlainAuth(
		"",
		"mario@mvochoa.com",
		"LA CONTRASEÑA",
		"smtp.mailgun.org")
	err := smtp.SendMail(
		"smtp.mailgun.org:587",
		auth,
		"mario@mvochoa.com",
		[]string{"vale_ochoa29@hotmail.com"},
		[]byte(msg),
	)
	if err != nil {
		log.Fatal("No se pudo enviar el correo.")
	}

	log.Println("Listo se a enviado el correo.")
}

Respuesta SMTP

Eso seria todo como puedes ver se pueden enviar y recibir correo electrónicos usando Mailgun.

Espero que te haya sido de ayuda. No olvides si ha sido util para ti seria de mucha ayuda si lo compartes con tus amigos.