Go
Verstuur je eerste e-mail vanuit Go in drie stappen: installeer de SDK, schrijf een handler die verstuurt, en voer hem uit. Deze quickstart gebruikt de net/http uit de standaardbibliotheek, geen framework nodig.
1. Installeren
Codevoorbeeld
go mod init example.com/bird-quickstart
go get github.com/messagebird/bird-sdk-goDe SDK vereist Go 1.24+. Haal een API-sleutel op via Developers > API-sleutels in het dashboard en exporteer deze; de SDK leidt de regio af uit het bk_us1_- / bk_eu1_-voorvoegsel van de sleutel, dus verder hoef je niets te configureren:
Codevoorbeeld
export BIRD_API_KEY="bk_us1_..."2. Versturen
Maak main.go aan met een HTTP-handler die verstuurt via het gedeelde onboardingdomein van Bird, zodat geen domeinverificatie nodig is:
Codevoorbeeld
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))
}De SDK genereert één idempotentiesleutel per Send-aanroep en hergebruikt deze bij het opnieuw proberen van time-outs, 429-antwoorden en 5xx-antwoorden. Een retry leidt daardoor niet tot een tweede verzending.
3. Uitproberen
Codevoorbeeld
go run . &
curl -X POST localhost:3000/sendBird antwoordt met 202 en accepteert de e-mail voor asynchrone bezorging; de handler retourneert het bericht. De *_count-velden volgen ontvangers door de bezorgstatussen. In het eerste antwoord is één ontvanger geaccepteerd en geen enkele bezorgd:
Codevoorbeeld
{
"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"
}Omdat de ontvanger het delivered@messagebird.dev-sandboxadres is, is bezorging gegarandeerd. Haal het bericht op aan de hand van zijn em_-ID met client.Email.Get en zie de status veranderen naar delivered.
Volgende stappen
- Go SDK-referentie: elke methode, parameter en fouttype.
- Verstuur je eerste e-mail: dezelfde stappen met curl en het dashboard.
- Verzenddomeinen: verifieer je eigen domein voor productieverzending.
- E-mail API-referentie: het volledige request- en responseschema.
Gerelateerde bronnen
Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.
Bekijk de gidsTesting email without spamming anyoneOntdek de mogelijkheidTest email deliveryVolg het leerpadOperate messaging reliably
Probeer de oefening en ontvang een implementatieoverzicht