Go · Gin
Envoyez votre premier e-mail depuis une application Gin en trois étapes : installez le SDK, ajoutez une route qui envoie, et lancez-le.
1. Installation
Exemple de code
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goLe SDK nécessite Go 1.24+. Récupérez une clé API depuis Developers > Clés API dans le tableau de bord et exportez-la ; le SDK déduit la région à partir du préfixe bk_us1_ / bk_eu1_ de la clé, aucune autre configuration n'est nécessaire :
Exemple de code
export BIRD_API_KEY="bk_us1_..."2. Envoi
Créez main.go avec une route qui envoie via le domaine d'intégration partagé de Bird, sans vérification de domaine nécessaire :
Exemple de code
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"))
}Le SDK génère une clé d'idempotence par appel Send et la réutilise lors des nouvelles tentatives après des délais d'attente, des réponses 429 et des réponses 5xx. Une nouvelle tentative ne crée donc pas un second envoi.
3. Test
Exemple de code
go run . &
curl -X POST localhost:3000/sendBird répond avec 202, acceptant l'e-mail pour une livraison asynchrone, et la route renvoie le message. Les champs *_count suivent les destinataires à travers les états de livraison. Dans la réponse initiale, un destinataire est accepté et aucun n'est livré :
Exemple de code
{
"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"
}Comme le destinataire est l'adresse sandbox delivered@messagebird.dev, la livraison est garantie. Récupérez le message par son ID em_ avec client.Email.Get et observez le statut passer à delivered.
Étapes suivantes
- Référence Go SDK : chaque méthode, paramètre et type d'erreur.
- Envoyez votre premier e-mail : le même flux avec curl et le tableau de bord.
- Domaines d'envoi : vérifiez votre propre domaine pour l'envoi en production.
- Référence API e-mail : le schéma complet de requête et de réponse.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.
Regarder le guideTesting email without spamming anyoneExplorer la fonctionnalitéTest email deliverySuivre le parcours d'apprentissageOperate messaging reliably
Essayez la pratique et obtenez un guide d'implémentation