Sign inGet Started

Go

Go से अपना पहला ईमेल तीन चरणों में भेजें: SDK इंस्टॉल करें, ईमेल भेजने वाला हैंडलर लिखें और उसे चलाएँ। यह क्विकस्टार्ट स्टैंडर्ड लाइब्रेरी के net/http का उपयोग करता है, किसी फ़्रेमवर्क की ज़रूरत नहीं है।

1. इंस्टॉल करें

कोड उदाहरण
go mod init example.com/bird-quickstart
go get github.com/messagebird/bird-sdk-go

SDK के लिए Go 1.24+ आवश्यक है। डैशबोर्ड में Developers > API keys से एक API कुंजी लें और उसे export करें। SDK कुंजी के bk_us1_ / bk_eu1_ प्रीफ़िक्स से क्षेत्र का पता लगा लेता है, इसलिए कुछ और कॉन्फ़िगर करने की ज़रूरत नहीं है:

कोड उदाहरण
export BIRD_API_KEY="bk_us1_..."

2. भेजें

main.go बनाएँ और उसमें एक HTTP हैंडलर लिखें जो Bird के साझा ऑनबोर्डिंग डोमेन से ईमेल भेजता है, ताकि डोमेन सत्यापन की ज़रूरत न पड़े:

कोड उदाहरण
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 हर Send कॉल के लिए एक idempotency कुंजी बनाता है और टाइमआउट, 429 प्रतिक्रियाओं और 5xx प्रतिक्रियाओं पर फिर से प्रयास करते समय उसी कुंजी का दोबारा उपयोग करता है। इसलिए फिर से प्रयास करने पर ईमेल दूसरी बार नहीं भेजा जाता।

3. आज़माएँ

कोड उदाहरण
go run . &
curl -X POST localhost:3000/send

Bird 202 के साथ प्रतिक्रिया देता है, यानी ईमेल को एसिंक्रोनस डिलीवरी के लिए स्वीकार कर लिया गया है, और हैंडलर संदेश लौटाता है। *_count फ़ील्ड डिलीवरी की अवस्थाओं में प्राप्तकर्ताओं की गिनती दिखाते हैं। शुरुआती प्रतिक्रिया में एक प्राप्तकर्ता स्वीकार किया गया है और कोई भी डिलीवर नहीं हुआ है:

कोड उदाहरण
{
  "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"
}

प्राप्तकर्ता delivered@messagebird.dev सैंडबॉक्स पता है, इसलिए डिलीवरी निश्चित है। संदेश को उसकी em_ ID से client.Email.Get के ज़रिए प्राप्त करें और स्टेटस को delivered में बदलते देखें।

अगले चरण

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।