Go · Gin
Senden Sie Ihre erste E-Mail aus einer Gin-Anwendung in drei Schritten: SDK installieren, eine Route zum Senden hinzufügen und ausführen.
1. Installieren
Codebeispiel
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goDas SDK erfordert Go 1.24+. Erstellen Sie einen API-Schlüssel unter Developers > API keys im Dashboard und exportieren Sie ihn; das SDK leitet die Region aus dem bk_us1_-/bk_eu1_-Präfix des Schlüssels ab, weitere Konfiguration ist nicht nötig:
Codebeispiel
export BIRD_API_KEY="bk_us1_..."2. Senden
Erstellen Sie main.go mit einer Route, die über die gemeinsame Onboarding-Domain von Bird sendet, sodass keine Domain-Verifizierung erforderlich ist:
Codebeispiel
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"))
}Das SDK erzeugt pro Send-Aufruf einen Idempotenzschlüssel und verwendet ihn bei Timeouts, 429-Antworten und 5xx-Antworten erneut. Ein erneuter Versuch erzeugt daher keinen zweiten Versand.
3. Ausprobieren
Codebeispiel
go run . &
curl -X POST localhost:3000/sendBird antwortet mit 202 und nimmt die E-Mail zur asynchronen Zustellung an; die Route gibt die Nachricht zurück. Die *_count-Felder verfolgen Empfänger durch die Zustellstatus. In der ersten Antwort ist ein Empfänger akzeptiert und keiner zugestellt:
Codebeispiel
{
"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"
}Da der Empfänger die delivered@messagebird.dev-Sandbox-Adresse ist, ist die Zustellung garantiert. Rufen Sie die Nachricht über ihre em_-ID mit client.Email.Get ab und beobachten Sie, wie der Status auf delivered wechselt.
Nächste Schritte
- Go-SDK-Referenz: alle Methoden, Parameter und Fehlertypen.
- Erste E-Mail senden: derselbe Ablauf mit curl und dem Dashboard.
- Sending-Domains: eigene Domain für den Produktionsversand verifizieren.
- E-Mail-API-Referenz: das vollständige Request- und Response-Schema.
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenTesting email without spamming anyoneDie Funktion erkundenTest email deliveryDem Lernpfad folgenOperate messaging reliably
Übung ausprobieren und ein Implementierungs-Briefing erhalten