Go · Gin
Kirim email pertama Anda dari aplikasi Gin dalam tiga langkah: instal SDK, tambahkan rute yang mengirim, dan jalankan.
1. Instal
go mod init example.com/bird-gin-quickstart
go get github.com/gin-gonic/gin github.com/messagebird/bird-sdk-goSDK memerlukan Go 1.24+. Ambil kunci API dari Platform tools > API keys di dashboard lalu ekspor; SDK menentukan region dari prefiks bk_us1_ / bk_eu1_ pada kunci, jadi tidak ada lagi yang perlu dikonfigurasi:
export BIRD_API_KEY="bk_us1_..."2. Kirim
Buat main.go dengan rute yang mengirim melalui domain onboarding bersama Bird, sehingga tidak perlu verifikasi domain:
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 menghasilkan satu kunci idempotensi per panggilan Send dan menggunakannya kembali saat mencoba lagi setelah timeout, respons 429, dan respons 5xx. Oleh karena itu, percobaan ulang tidak membuat pengiriman kedua.
3. Coba
go run . &
curl -X POST localhost:3000/sendBird merespons dengan 202, menerima email untuk pengiriman asinkron, dan rute mengembalikan pesan. Field *_count melacak penerima melalui status pengiriman. Pada respons awal, satu penerima diterima dan belum ada yang terkirim:
{
"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"
}Karena penerima adalah alamat sandbox delivered@messagebird.dev, pengiriman dijamin berhasil. Ambil pesan berdasarkan ID em_ dengan client.Email.Get dan lihat statusnya berubah ke delivered.
Langkah selanjutnya
- Referensi Go SDK: setiap metode, parameter, dan tipe kesalahan.
- Kirim email pertama Anda: alur yang sama dengan curl dan dashboard.
- Domain pengirim: verifikasi domain Anda sendiri untuk pengiriman produksi.
- Referensi API email: skema permintaan dan respons lengkap.
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini.