Go · Gin
Verstuur je eerste e-mail vanuit een Gin-applicatie in drie stappen: installeer de SDK, voeg een route toe die verstuurt, en draai het.
1. Installeren
Codevoorbeeld
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goDe SDK vereist Go 1.24+. Haal een API-sleutel op via Developers > API keys in het dashboard en exporteer deze; de SDK leidt de regio af uit het bk_us1_- / bk_eu1_-prefix van de sleutel, dus verder hoeft er niets geconfigureerd te worden:
Codevoorbeeld
export BIRD_API_KEY="bk_us1_..."2. Versturen
Maak main.go aan met een route die verstuurt via het gedeelde onboardingdomein van Bird, zodat domeinverificatie niet nodig is:
Codevoorbeeld
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"))
}De SDK genereert één idempotentiesleutel per Send-aanroep en hergebruikt deze bij het opnieuw proberen van time-outs, 429-responses en 5xx-responses. 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 route 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 via zijn em_-ID met client.Email.Get en kijk hoe de status verandert naar delivered.
Volgende stappen
- Go SDK-referentie: elke methode, parameter en fouttype.
- Verstuur je eerste e-mail: dezelfde flow met curl en het dashboard.
- Verzenddomeinen: verifieer je eigen domein voor productieverzending.
- Email 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