Envía correo electrónico con Mailgun

La API de Mailgun está compilada en HTTP y es RESTful. Usa URL predecibles y orientadas a los recursos, y capacidades HTTP integradas para pasar parámetros y autenticación. La API de Mailgun responde con códigos de respuesta HTTP estándar para indicar errores y muestra JSON.

Mailgun publicó bibliotecas para varios lenguajes. Puedes usar estas bibliotecas o tu biblioteca HTTP/REST favorita para hacer llamadas HTTP a Mailgun.

Para ver más códigos de muestra en otros lenguajes de programación, visita la Documentación de Mailgun.

Precios

Como usuario de Google Cloud Platform, tus primeros 30,000 mensajes de cada mes son gratuitos. Visita la calculadora de precios en la página de registro para ver los precios de mensajes adicionales y descuentos por volumen.

Configuración

  • La biblioteca mailgun-go proporciona una interfaz que facilita la interacción con la API de Mailgun. Para instalar la biblioteca, ejecuta:

    $ go get github.com/mailgun/mailgun-go
    

Cómo enviar un correo electrónico de texto sin formato


func SendSimpleMessageHandler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	httpc := urlfetch.Client(ctx)

	mg := mailgun.NewMailgun(
		"YOUR_DOMAIN_NAME", // Domain name
		"YOUR_API_KEY",     // API Key
		"YOUR_PUBLIC_KEY",  // Public Key
	)
	mg.SetClient(httpc)

	msg, id, err := mg.Send(mg.NewMessage(
		/* From */ "Excited User <mailgun@YOUR_DOMAIN_NAME>",
		/* Subject */ "Hello",
		/* Body */ "Testing some Mailgun awesomness!",
		/* To */ "bar@example.com", "YOU@YOUR_DOMAIN_NAME",
	))
	if err != nil {
		msg := fmt.Sprintf("Could not send message: %v, ID %v, %+v", err, id, msg)
		http.Error(w, msg, http.StatusInternalServerError)
		return
	}

	w.Write([]byte("Message sent!"))
}

Cómo enviar un correo electrónico de texto y HTML

Envío de un mensaje con partes de texto y HTML. En este ejemplo, también se adjuntan archivos al mensaje:


func SendComplexMessageHandler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	httpc := urlfetch.Client(ctx)

	mg := mailgun.NewMailgun(
		"YOUR_DOMAIN_NAME", // Domain name
		"YOUR_API_KEY",     // API Key
		"YOUR_PUBLIC_KEY",  // Public Key
	)
	mg.SetClient(httpc)

	message := mg.NewMessage(
		/* From */ "Excited User <mailgun@YOUR_DOMAIN_NAME>",
		/* Subject */ "Hello",
		/* Body */ "Testing some Mailgun awesomness!",
		/* To */ "foo@example.com",
	)
	message.AddCC("baz@example.com")
	message.AddBCC("bar@example.com")
	message.SetHtml("<html>HTML version of the body</html>")
	message.AddAttachment("files/test.jpg")
	message.AddAttachment("files/test.txt")

	msg, id, err := mg.Send(message)
	if err != nil {
		msg := fmt.Sprintf("Could not send message: %v, ID %v, %+v", err, id, msg)
		http.Error(w, msg, http.StatusInternalServerError)
		return
	}

	w.Write([]byte("Message sent!"))
}

Respuesta de muestra:

{
    "message": "Queued. Thank you.",
    "id": "<20111114174239.25659.5817@samples.mailgun.org>"
}

Más información

Para obtener más información y ejemplos detallados, incluido cómo rastrear y enrutar mensajes, consulta la documentación de Mailgun.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Go