Go
Kirim email pertama Anda dari Go dalam tiga langkah: instal SDK, tulis handler yang mengirim, dan jalankan. Panduan cepat ini menggunakan net/http dari pustaka standar, tanpa framework tambahan.
1. Instal
Contoh kode
go mod init example.com/bird-quickstart
go get github.com/messagebird/bird-sdk-goSDK memerlukan Go 1.24+. Ambil kunci API dari Developers > Kunci API di dashboard lalu ekspor; SDK menyimpulkan region dari prefiks bk_us1_ / bk_eu1_ pada kunci tersebut, jadi tidak perlu konfigurasi lain:
Contoh kode
export BIRD_API_KEY="bk_us1_..."2. Kirim
Buat main.go dengan handler HTTP yang mengirim melalui domain onboarding bersama Bird, sehingga verifikasi domain tidak diperlukan:
Contoh kode
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))
}SDK menghasilkan satu kunci idempotensi per panggilan Send dan menggunakannya kembali saat mencoba ulang timeout, respons 429, dan respons 5xx. Oleh karena itu, percobaan ulang tidak menghasilkan pengiriman kedua.
3. Coba
Contoh kode
go run . &
curl -X POST localhost:3000/sendBird merespons dengan 202, menerima email untuk pengiriman asinkron, dan handler mengembalikan pesan tersebut. Field *_count melacak penerima melalui status pengiriman. Pada respons awal, satu penerima diterima dan belum ada yang terkirim:
Contoh kode
{
"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 pantau statusnya berubah ke delivered.
Langkah selanjutnya
- Referensi Go SDK: semua method, param, dan tipe error.
- Kirim email pertama Anda: alur yang sama dengan curl dan dashboard.
- Domain pengiriman: verifikasi domain Anda sendiri untuk pengiriman produksi.
- Referensi API email: skema request dan response lengkap.
Sumber daya terkait
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.
Tonton panduannyaTesting email without spamming anyoneJelajahi kemampuannyaTest email deliveryIkuti jalur pembelajaranOperate messaging reliably
Coba praktiknya dan dapatkan ringkasan implementasi