Go
Envoyez votre premier e-mail depuis Go en trois étapes : installez le SDK, écrivez un handler qui envoie, et exécutez-le. Ce guide de démarrage rapide utilise le net/http de la bibliothèque standard, aucun framework requis.
1. Installation
Exemple de code
go mod init example.com/bird-quickstart
go get 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 un handler HTTP qui envoie via le domaine d'intégration partagé de Bird, aucune vérification de domaine n'est requise :
Exemple de code
package main
import (
"encoding/json"
"errors"
"log"
"net/http"
"os"
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)
}
http.HandleFunc("POST /send", func(w http.ResponseWriter, r *http.Request) {
msg, err := client.Email.Send(r.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) {
http.Error(w, apiErr.Error(), apiErr.StatusCode)
return
}
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusAccepted)
_ = json.NewEncoder(w).Encode(msg)
})
log.Fatal(http.ListenAndServe(":3000", nil))
}Le SDK génère une clé d'idempotence par appel Send et la réutilise lors des nouvelles tentatives après un délai d'attente, une réponse 429 ou une réponse 5xx. Une nouvelle tentative ne crée donc pas un second envoi.
3. Essai
Exemple de code
go run . &
curl -X POST localhost:3000/sendBird répond avec 202, acceptant l'e-mail pour une livraison asynchrone, et le handler 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 du SDK Go : 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 Email : 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