अपना पहला ईमेल भेजें
एक API key बनाएँ, Bird के शेयर्ड onboarding डोमेन से भेजें, और परिणाम देखें। इस गाइड के लिए आपको कोई सेंडिंग डोमेन सत्यापित करने या DNS रिकॉर्ड पब्लिश करने की ज़रूरत नहीं है। ग्राहकों को भेजने से पहले अपना खुद का डोमेन सत्यापित करें।
1. एक API key बनाएँ
डैशबोर्ड में Developers > API keys पर जाएँ और एक key बनाएँ। Keys एक रीजन से जुड़ी होती हैं और bk_us1_... या bk_eu1_... जैसी दिखती हैं; प्रीफ़िक्स में रीजन बताता है कि कौन-सा API होस्ट कॉल करना है: https://us1.platform.bird.com या https://eu1.platform.bird.com।

पूरी key केवल एक बार, बनाते समय दिखाई जाती है। इसे किसी सुरक्षित जगह कॉपी करें, फिर इसे एक्सपोर्ट करें ताकि स्टेप 2 के स्निपेट इसे पढ़ सकें:
कोड उदाहरण
export BIRD_API_KEY="bk_us1_..."2. एक ईमेल भेजें
onboarding@messagebird.dev से भेजें, जो Bird का शेयर्ड onboarding डोमेन है और आपके वर्कस्पेस में बिना किसी सेटअप के उपलब्ध है। इसे delivered@messagebird.dev को संबोधित करें, एक sandbox प्राप्तकर्ता जो हमेशा डिलीवर होता है, ताकि बिना किसी असली मेलबॉक्स के परिणाम निश्चित हो।
cURL कॉल US होस्ट का उपयोग करती है। अगर आपकी key bk_eu1_ से शुरू होती है, तो इसके बजाय https://eu1.platform.bird.com को कॉल करें। SDK आपकी key से रीजन पढ़ता है और होस्ट चुनता है। TypeScript टैब के लिए npm install @messagebird/sdk ज़रूरी है।
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const msg = await bird.email.send({
from: { email: "onboarding@messagebird.dev", name: "Bird" },
to: ["delivered@messagebird.dev"],
subject: "Hello from Bird",
html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status);from bird import APIError, Bird
with Bird() as client:
try:
message = client.email.send(
from_={"email": "onboarding@messagebird.dev", "name": "Bird"},
to=["delivered@messagebird.dev"],
subject="Hello from Bird",
html="<p>My first Bird email.</p>",
)
print(message.id, message.status)
except APIError as err:
print("send failed:", err)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))
}<?php
// Send your first email. Set BIRD_API_KEY in your environment, then run:
// php examples/quickstart-email.php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
use MessageBird\Bird;
$bird = new Bird(getenv('BIRD_API_KEY') ?: '');
$message = $bird->email->send(
from: 'Bird <onboarding@messagebird.dev>',
to: ['delivered@messagebird.dev'],
subject: 'Hello from Bird',
html: '<p>My first Bird email.</p>',
);
echo $message->getId(), ' ', $message->getStatus(), "\n";bird email send \
--from 'Bird <onboarding@messagebird.dev>' \
--html '<p>My first Bird email.</p>' \
--subject 'Hello from Bird' \
--to delivered@messagebird.devcurl -X POST "https://us1.platform.bird.com/v1/email/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": { "email": "onboarding@messagebird.dev", "name": "Bird" },
"to": ["delivered@messagebird.dev"],
"subject": "Hello from Bird",
"html": "<p>My first Bird email.</p>"
}'हर भाषा या फ़्रेमवर्क में पूरे इंस्टॉलेशन और रन स्टेप्स के लिए SDK quickstarts का उपयोग करें।
3. परिणाम देखें
API 202 के साथ प्रतिक्रिया देता है: Bird ने भेजने को असिंक्रोनस प्रोसेसिंग के लिए स्वीकार कर लिया है। डिलीवरी स्थिति अलग से जाँचें। *_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"
}मैसेज की वर्तमान स्थिति देखने के लिए उसे उसकी em_ ID से फ़ेच करें। मैसेज accepted से processed होते हुए delivered तक पहुँचता है। Sandbox मैसेज delivered तक पहुँचने तक पोल करें:
const msg = await bird.email.get("em_abc123");
msg.status; // "accepted" | "processed" | "delivered" | "bounced" | …
msg.delivered_count;
msg.bounced_count;message = client.email.get("em_abc123")
print(message.id, message.status, message.delivered_count)package main
import (
"context"
"fmt"
"log"
"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)
}
msg, err := client.Email.Get(context.Background(), "em_abc123")
if err != nil {
log.Fatal(err)
}
fmt.Println(*msg.Status, *msg.DeliveredCount)
}$message = $bird->email->get('em_01krdgeqcxet5s7t44vh8rt9mg');
echo $message->getStatus();bird email get <message-id>curl -X GET "https://{region}.platform.bird.com/v1/email/messages/{message_id}" \
-H "Authorization: Bearer $TOKEN"cURL टैब में {region} और {message_id} को बदलें, और $TOKEN की जगह $BIRD_API_KEY का उपयोग करें।
रीड अब status: "delivered", delivered_count: 1, और एक delivered_at टाइमस्टैम्प दिखाता है। एक वास्तविक प्राप्तकर्ता के लिए delivered क्या स्थापित करता है, यह जानने के लिए events गाइड देखें।
चूँकि आपने delivered@messagebird.dev को भेजा, परिणाम गारंटीड है: मैसेज Bird की वास्तविक डिलीवरी पाइपलाइन से गुज़रता है, जिसमें प्रोडक्शन event और webhook शेप्स शामिल हैं, लेकिन किसी असली मेलबॉक्स को नहीं छूता। बाउंस टेस्ट करने के लिए bounce@messagebird.dev को भेजें। testing sandbox गाइड में हर sandbox पता और उसका सिमुलेटेड परिणाम सूचीबद्ध है।
Onboarding डोमेन के बारे में
शेयर्ड onboarding@messagebird.dev सेंडर onboarding के लिए उपलब्ध है और इसकी ये सीमाएँ हैं:
- @messagebird.dev sandbox पतों के अलावा, यह केवल आपके वर्कस्पेस के सत्यापित सदस्यों को डिलीवर करता है; किसी भी अन्य प्राप्तकर्ता को 422 के साथ अस्वीकार कर दिया जाता है।
- भेजने की सीमा प्रति संगठन प्रति UTC दिन 50 प्राप्तकर्ता है, जिसमें हर to, cc, और bcc पता गिना जाता है, sandbox प्राप्तकर्ता भी शामिल हैं। सीमा पार होने पर API एक 429 लौटाता है।
जब आप असली ग्राहकों को ईमेल भेजने के लिए तैयार हों, तो अपना खुद का सेंडिंग डोमेन सत्यापित करें और from में अपना पता डालें; अनुरोध में बाकी सब कुछ वैसा ही रहेगा।
अगले कदम
- प्रति-SDK quickstarts: आपकी भाषा और फ़्रेमवर्क में वही फ़्लो।
- सेंडिंग डोमेन: प्रोडक्शन सेंडिंग के लिए अपना डोमेन सत्यापित करें।
- Testing sandbox: हर sandbox पता और उससे ट्रिगर होने वाले events।
- Email API रेफ़रेंस: पूरा अनुरोध और प्रतिक्रिया स्कीमा।
- ईमेल के साथ शुरुआत करना: डैशबोर्ड onboarding का एक वीडियो, जो इस पेज से आगे जाता है और DNS रिकॉर्ड के साथ एक सेंडिंग डोमेन जोड़ता है
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
कॉन्सेप्ट समझेंShould I use a Bird SDK or call the API directly?क्षमता जानेंEmailलर्निंग पाथ फ़ॉलो करेंBuild your first integration
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ