Go · Gin
Invia la tua prima email da un'applicazione Gin in tre passaggi: installa l'SDK, aggiungi una route che invia e avviala.
1. Installa
Esempio di codice
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goL'SDK richiede Go 1.24+. Ottieni una chiave API da Developers > Chiavi API nella dashboard ed esportala; l'SDK deduce la regione dal prefisso bk_us1_ / bk_eu1_ della chiave, quindi non serve altra configurazione:
Esempio di codice
export BIRD_API_KEY="bk_us1_..."2. Invia
Crea main.go con una route che invia attraverso il dominio di onboarding condiviso di Bird, così non è necessaria la verifica del dominio:
Esempio di codice
package main
import (
"errors"
"log"
"net/http"
"os"
"github.com/gin-gonic/gin"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
r := gin.Default()
r.POST("/send", func(c *gin.Context) {
msg, err := client.Email.Send(c.Request.Context(), bird.EmailSendParams{
From: "onboarding@messagebird.dev",
To: []string{"delivered@messagebird.dev"},
Subject: "Hello from Bird",
HTML: "<p>My first Bird email.</p>",
})
if err != nil {
var apiErr *bird.APIError
if errors.As(err, &apiErr) {
c.JSON(apiErr.StatusCode, gin.H{"error": apiErr.Error()})
return
}
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusAccepted, msg)
})
log.Fatal(r.Run(":3000"))
}L'SDK genera una chiave di idempotenza per ogni chiamata Send e la riutilizza quando riprova in caso di timeout, risposte 429 e risposte 5xx. Un nuovo tentativo quindi non genera un secondo invio.
3. Provalo
Esempio di codice
go run . &
curl -X POST localhost:3000/sendBird risponde con 202, accettando l'email per la consegna asincrona, e la route restituisce il messaggio. I campi *_count tracciano i destinatari attraverso gli stati di consegna. Nella risposta iniziale, un destinatario è accettato e nessuno è consegnato:
Esempio di codice
{
"id": "em_01ky7ma8y2es1s2akzk53tmjn0",
"status": "accepted",
"category": "marketing",
"from": { "email": "onboarding@messagebird.dev" },
"to": [{ "email": "delivered@messagebird.dev" }],
"subject": "Hello from Bird",
"accepted_count": 1,
"processed_count": 0,
"delivered_count": 0,
"deferred_count": 0,
"bounced_count": 0,
"complained_count": 0,
"rejected_count": 0,
"open_count": 0,
"click_count": 0,
"track_opens": true,
"track_clicks": true,
"created_at": "2026-07-23T13:58:20.866Z"
}Poiché il destinatario è l'indirizzo sandbox delivered@messagebird.dev, la consegna è garantita. Recupera il messaggio tramite il suo ID em_ con client.Email.Get e osserva lo stato passare a delivered.
Prossimi passaggi
- Riferimento Go SDK: ogni metodo, parametro e tipo di errore.
- Invia la tua prima email: lo stesso flusso con curl e la dashboard.
- Domini di invio: verifica il tuo dominio per l'invio in produzione.
- Riferimento email API: lo schema completo di richiesta e risposta.
Risorse correlate
Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.
Guarda la guidaTesting email without spamming anyoneEsplora la funzionalitàTest email deliverySegui il percorso di apprendimentoOperate messaging reliably
Prova l'esercitazione e ottieni un brief di implementazione