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.
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
Ahora registramos todos los DNS Records la información la vamos a copiar de la pagina de mailgun a la de DigitalOcean.
TXT
MX
CNAME
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.
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.
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
y lo recibimos en la cuenta de Gmail como vez es para mario@mvochoa.com.
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:
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.")
}
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.