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
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 :
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 :
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
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é :
{
"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.