Docs / SDK / Go / Mail
Go — módulo Mail
Paquete github.com/webability/webability-go/mail. Envuelve la API de correo transaccional (/v1/mail/*). Para campañas masivas a listas/segmentos, ver el módulo Marketing.
Importar y crear el objeto
import (
"github.com/webability/webability-go/wa"
"github.com/webability/webability-go/mail"
)
api := wa.New("tu-client-id", "tu-token-secreto")
m := mail.New(api)
Send(req mail.SendRequest)
POST /v1/mail/send — envía un correo a un solo destinatario.
out, err := m.Send(mail.SendRequest{
From: mail.Address{Email: "no-reply@tuempresa.com", Name: "Tu Empresa"},
To: mail.Recipient{Email: "cliente@ejemplo.com", Name: "Ana",
Vars: map[string]interface{}{"nombre": "Ana"}},
Subject: "Confirma tu compra",
HTML: "<p>Hola {{nombre}}, tu compra fue confirmada.</p>",
})
if err != nil {
log.Fatal(err)
}
fmt.Println("encolado:", out.QueueKey)
Devuelve *mail.SendResult{Status, QueueKey int, To string}.
SendBulk(req mail.SendBulkRequest)
POST /v1/mail/send-bulk — envía el mismo correo (con variables por destinatario) a varios destinatarios.
out, err := m.SendBulk(mail.SendBulkRequest{
From: mail.Address{Email: "newsletter@tuempresa.com", Name: "Tu Empresa"},
Subject: "Novedades de la semana",
HTML: "<p>Hola {{nombre}}!</p>",
Recipients: []mail.Recipient{
{Email: "ana@ejemplo.com", Vars: map[string]interface{}{"nombre": "Ana"}},
{Email: "luis@ejemplo.com", Vars: map[string]interface{}{"nombre": "Luis"}},
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(out.Queued, "encolados,", out.Failed, "fallidos")
for _, r := range out.Results {
fmt.Println(r.Email, r.Status, r.Error)
}
Devuelve *mail.SendBulkResult{Status, Total, Queued, Failed int, Results []mail.SendBulkResultEntry}.
Este módulo envuelve el servicio de correo transaccional (envío por evento): Webability Mailing as a Service. Para campañas masivas a listas/segmentos, ver Marketing.