Go · Gin
Wyślij pierwszy e-mail z aplikacji Gin w trzech krokach: zainstaluj SDK, dodaj trasę wysyłającą wiadomość i uruchom ją.
1. Instalacja
Przykład kodu
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goSDK wymaga Go 1.24+. Pobierz klucz API z Developers > API keys w panelu i wyeksportuj go; SDK rozpoznaje region na podstawie prefiksu bk_us1_ / bk_eu1_ klucza, więc nic więcej nie wymaga konfiguracji:
Przykład kodu
export BIRD_API_KEY="bk_us1_..."2. Wysyłka
Utwórz main.go z trasą wysyłającą przez współdzieloną domenę onboardingową Bird, dzięki czemu weryfikacja domeny nie jest wymagana:
Przykład kodu
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"))
}SDK generuje jeden klucz idempotentności na każde wywołanie Send i używa go ponownie przy ponawianiu po przekroczeniu limitu czasu, odpowiedziach 429 i odpowiedziach 5xx. Ponowienie nie tworzy więc drugiej wysyłki.
3. Przetestuj
Przykład kodu
go run . &
curl -X POST localhost:3000/sendBird odpowiada kodem 202, przyjmując e-mail do asynchronicznego dostarczenia, a trasa zwraca wiadomość. Pola *_count śledzą odbiorców przez kolejne stany dostarczenia. W początkowej odpowiedzi jeden odbiorca jest zaakceptowany, a żaden nie jest dostarczony:
Przykład kodu
{
"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"
}Ponieważ odbiorca to adres sandboxowy delivered@messagebird.dev, dostarczenie jest gwarantowane. Pobierz wiadomość po jej identyfikatorze em_ za pomocą client.Email.Get i obserwuj, jak status zmieni się na delivered.
Następne kroki
- Dokumentacja Go SDK: każda metoda, parametr i typ błędu.
- Wyślij pierwszy e-mail: ten sam przepływ z użyciem curl i panelu.
- Domeny wysyłkowe: zweryfikuj własną domenę do wysyłki produkcyjnej.
- Dokumentacja e-mail API: pełny schemat żądania i odpowiedzi.
Powiązane zasoby
Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.
Obejrzyj przewodnikTesting email without spamming anyonePoznaj możliwościTest email deliveryPodążaj ścieżką naukiOperate messaging reliably
Wypróbuj ćwiczenie i uzyskaj brief wdrożeniowy