Sign inGet Started

SparkPost से माइग्रेट करें

इस गाइड की मदद से आउटबाउंड ईमेल को SparkPost से Bird पर ले जाएँ। मुख्य माइग्रेशन चेकलिस्ट का पालन करें और अपने HTTP या SMTP इंटीग्रेशन के लिए नीचे दी गई मैपिंग का उपयोग करें।

शुरू करने से पहले

आपको अपने SparkPost खाते और सब-खातों, भेजने वाले डोमेन के DNS, एप्लिकेशन कॉन्फ़िगरेशन और वेबहुक हैंडलर तक पहुँच चाहिए। अपने चुने हुए क्षेत्र में एक Bird वर्कस्पेस और API कुंजी तैयार करें। ऑप्ट-आउट आयात के लिए कुंजी पर preferences लिखने की अनुमति भी चाहिए।

प्रेषकों, टेम्पलेट, स्निपेट, प्राप्तकर्ता सूचियों, सप्रेशन, शेड्यूल किए गए प्रेषणों, IP पूल और वेबहुक की सूची बनाएँ। इसमें SDK, फ़्रेमवर्क मेल एडेप्टर, बैकग्राउंड जॉब और इनबाउंड ईमेल प्रवाह भी शामिल करें। नए संसाधन बनाते समय उनकी ID दर्ज करते जाएँ, क्योंकि SparkPost की ID और क्रेडेंशियल Bird में काम नहीं करते। SparkPost क्लाइंट बदलते समय Bird SDK का उपयोग करें और उसके फिर से प्रयास, टाइमआउट और पेजिनेशन की समीक्षा करें।

यदि आप SparkPost सब-खातों का उपयोग करते हैं, तो वर्कस्पेस की संरचना चुनने से पहले हमसे संपर्क करें। उपलब्ध वर्कस्पेस, अनुमतियों, साझा संसाधनों और टेनेंट प्रोविज़निंग वर्कफ़्लो की पुष्टि करें। वर्कस्पेस की API कुंजी X-MSYS-SUBACCOUNT से टेनेंट नहीं बदल सकती। माइग्रेशन के दौरान निलंबित टेनेंट और टेनेंट-विशिष्ट भेजने के प्रतिबंध बनाए रखें।

पुष्टि करें कि आपकी Bird प्लान सीमाएँ और दर सीमाएँ आपके भेजने की मात्रा, संसाधनों की संख्या और अधिकतम ट्रैफ़िक के लिए पर्याप्त हैं।

अपने भेजने वाले डोमेन जल्दी पंजीकृत करें। SparkPost का काम कर रहा DNS बनाए रखें और ज़रूरत हो तो रिटर्न-पाथ और ट्रैकिंग के लिए अलग होस्टनेम चुनें। यदि पंजीकरण में स्वामित्व का टकराव दिखे, तो सक्रिय डोमेन हटाने से पहले सहायता से संपर्क करें।

समर्पित IP: माइग्रेट करने से पहले हमसे या अपनी खाता टीम से संपर्क करें। हमसे पुष्टि करवाएँ कि आपके मौजूदा SparkPost IP Bird पर जा सकते हैं या नहीं, और पूल सेटअप, समय और ज़रूरी वार्मअप पर सहमति बनाएँ। अपने खाते का क्षेत्र, IP पते, पूल के नाम और भेजने की मात्रा बताएँ। माइग्रेशन योजना की पुष्टि होने तक अपने मौजूदा IP सक्रिय रखें।

कटओवर से पहले पूल चयन और प्राप्तकर्ताओं की IP या होस्टनेम अनुमति-सूचियों की पुष्टि करें। IP खरीदने से डिफ़ॉल्ट पूल नहीं बदलता। वार्मअप के दौरान नए खरीदे गए IP अतिरिक्त ट्रैफ़िक साझा इन्फ्रास्ट्रक्चर से भेज सकते हैं। यह तब मायने रखता है जब प्राप्तकर्ता केवल विशिष्ट IP से मेल स्वीकार करते हैं।

इसे अपने एजेंट को सौंपें

इसे अपने एप्लिकेशन रिपॉज़िटरी में अपने कोडिंग एजेंट में पेस्ट करें:

कोड उदाहरण
Help me migrate my SparkPost email integration to Bird.
1. Use an existing Bird MCP connection or signed-in CLI. Otherwise follow https://bird.com/docs/ai/set-up-your-agent.md. Append .md to Bird docs URLs to read Markdown.
2. Read https://bird.com/docs/guides/email/migrate/sparkpost.md and https://bird.com/docs/guides/email/migrate.md. Make a read-only inventory of my SparkPost call sites, SDKs, resource IDs, configured URLs, sending domains, and scheduled jobs before editing. Never print API keys.
3. Propose workspace and region mappings. If subaccounts, dedicated IPs, or domain ownership conflicts need a migration plan, use the available Bird tools to open a human email support ticket and return its ID. For CLI usage, read https://bird.com/docs/cli/reference/support-tickets-create.md. Wait for the agreed plan before moving those resources.
4. Follow https://bird.com/docs/guides/email/sending-domains.md; preserve working DNS and show me proposed records. Ask before DNS changes or paid provisioning.
5. Port sending, templates, and webhooks using this guide. Preserve recipient privacy, personalization, and categories. Export suppressions with scope and type; show me the handling before importing or changing preferences.
6. Test using https://bird.com/docs/guides/email/testing-sandbox.md. Show me results and unresolved differences, including tracking, signatures, and correlation.
7. Ask for explicit approval before production cutover. Keep a rollback path; get separate approval before retiring SparkPost resources or credentials.

भेजने वाले कॉल को मैप करें

POST /api/v1/transmissions की जगह POST /v1/email/messages का उपयोग करें, या स्वतंत्र संदेशों के लिए POST /v1/email/batches का। SparkPost API अवलोकन में उसके क्षेत्रीय होस्ट और प्रमाणीकरण दिए गए हैं। Bird आपकी API कुंजी के क्षेत्र के अनुसार https://us1.platform.bird.com या https://eu1.platform.bird.com का उपयोग करता है, साथ में Authorization: Bearer $BIRD_API_KEY।

एक SparkPost ट्रांसमिशन अपने प्राप्तकर्ताओं के लिए अलग-अलग, वैयक्तिकृत ईमेल बना सकता है। Bird एक ही भेजने में सभी प्राप्तकर्ताओं के लिए एक जैसी सामग्री और पैरामीटर साझा करता है। हर वैयक्तिकरण के लिए अलग संदेश का उपयोग करें, जिन्हें चाहें तो एक बैच में समूहित कर सकते हैं। केवल To वाले संदेश अलग-अलग पते पर ही जाते हैं; Cc/Bcc प्रतियाँ जोड़ते समय दिखाई देने वाले हेडर जाँचें।

SparkPost ट्रांसमिशन फ़ील्ड को इस तरह मैप करें:

SparkPostBird माइग्रेशन
content.from, subject, html, textइन्हीं नामों वाले शीर्ष-स्तरीय फ़ील्ड
content.reply_toreply_to ऐरे
recipients[].addressहर वैयक्तिकृत प्राप्तकर्ता के लिए एक संदेश
address.header_to, content.headers.CCto / cc / bcc समूह फिर से बनाएँ; नीचे पते संबंधी टिप्पणी देखें
content.headersheaders; भेजने की गाइड में आरक्षित नाम जाँचें
substitution_dataइनलाइन parameters या संग्रहीत template.parameters; ओवरराइड हल करें और डेटा को Bird की छोटी पैरामीटर सीमा में फ़िट करें
content.template_idनया Bird टेम्पलेट id या slug; पहले सामग्री को बदलें और प्रकाशित करें
ट्रांसमिशन/प्राप्तकर्ता metadatametadata में मिलाएँ, टकराव होने पर प्राप्तकर्ता की कुंजियाँ लागू हों; डेटा को Bird की छोटी मेटाडेटा सीमा में फ़िट करें
प्राप्तकर्ता tags, campaign_id{ name, value } टैग चुनें; कोई ब्रॉडकास्ट नहीं बनता
options.transactionalस्पष्ट category: transactional या marketing
options.open_tracking, options.click_trackingtrack_opens, track_clicks; पहले ओवरराइड हल करें
options.start_timescheduled_at; अनुरोध स्वीकार होते ही टेम्पलेट सामग्री तय हो जाती है; नीचे शेड्यूलिंग संबंधी नोट देखें
options.ip_poolBird ip_pool_id; समर्पित IP ले जाने से पहले हमसे संपर्क करें
content.attachmentstype → content_type (मूल MIME प्रकार), name → filename, data → base64 content; MIME पैरामीटर पर निर्भर फ़ाइलों को जाँचें
content.inline_imagesवही फ़ाइल मैपिंग, साथ में name → content_id; नीचे देखें
return_path, tracking_domainBird डोमेन कॉन्फ़िगरेशन; नीचे देखें
content.ab_test_idवेरिएंट अपने एप्लिकेशन में चुनें और परिणाम वहीं ट्रैक करें; भेजने वाले अनुरोध में इसके बराबर कोई सीधा फ़ील्ड नहीं है

एक ही ईमेल की To/Cc/Bcc प्रतियों के लिए प्राप्तकर्ता समूह को एक बार दोबारा बनाएँ। SparkPost के दिखाए गए पते डिलीवरी प्राप्तकर्ताओं से अलग हो सकते हैं; Bird में to, cc और bcc में से हर एक डिलीवरी प्राप्तकर्ता जोड़ता है। SparkPost के CC हेडर को हर विस्तारित संदेश के cc में कॉपी करने से डुप्लिकेट प्रतियाँ भेजी जा सकती हैं। स्विच करने से पहले दिखाई देने वाले हेडर और प्राप्तकर्ताओं की संख्या जाँचें।

भेजने वाले फ़ील्ड की सीमाएँ, शेड्यूलिंग और अटैचमेंट के नियम जाँचें। इनलाइन इमेज की ID और उनसे मेल खाने वाले cid: संदर्भों को Bird के नियमों के अनुसार अपडेट करें। डोमेन पर रिटर्न पाथ और ट्रैकिंग डोमेन कॉन्फ़िगर करें।

Bird के HTTP भेजने वाले फ़ील्ड में SparkPost के content.email_rfc822, content.amp_html या options.inline_css शामिल नहीं हैं। रॉ संदेशों को समर्थित फ़ील्ड से दोबारा बनाएँ, AMP के लिए HTML/टेक्स्ट विकल्प दें, और HTML भेजने से पहले CSS को इनलाइन करें। SMTP समर्थित संदेश भागों को पार्स करके दोबारा बनाता है; अगर आप उसकी सटीक संरचना पर निर्भर हैं, तो प्राप्त MIME की जाँच करें। अटैचमेंट के MIME पैरामीटर, जैसे कैलेंडर का method या टेक्स्ट का charset, सुरक्षित नहीं रहते।

शेड्यूल किए गए API संदेशों के लिए Bird अनुरोध स्वीकार करते समय टेम्पलेट का संस्करण, भाषा और पैरामीटर तय कर देता है। बाद में टेम्पलेट में किए गए बदलाव उस संदेश को अपडेट नहीं करते। उसे बदलने के लिए प्रोसेसिंग शुरू होने से पहले शेड्यूल किया गया संदेश रद्द करें, फिर नया संदेश भेजें। अगर आपको SparkPost का कैंपेन-आधारित रद्दीकरण बदलना है, तो Bird संदेश ID का एक समूह रखें।

BIRD_API_KEY को अपनी Bird कुंजी पर सेट करें। यह सैंडबॉक्स उदाहरण किसी सत्यापित डोमेन के बिना चलता है और किसी असली इनबॉक्स तक नहीं पहुँचता। EU कुंजी के लिए https://eu1.platform.bird.com का उपयोग करें:

कोड उदाहरण
curl --fail-with-body https://us1.platform.bird.com/v1/email/messages \
  -H "Authorization: Bearer $BIRD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "onboarding@messagebird.dev",
    "to": ["delivered@messagebird.dev"],
    "subject": "Your receipt",
    "text": "Thanks for your order, {{ first_name }}.",
    "parameters": {"first_name": "Alex"},
    "category": "transactional",
    "metadata": {"order_id": "order_123"},
    "tags": [{"name": "mailstream", "value": "receipts"}]
  }'

आपको 202 Accepted और एक em_ संदेश ID मिलनी चाहिए। उस ID को सहेजें और प्राप्तकर्ता के परिणाम इवेंट के ज़रिए ट्रैक करें। स्वीकृति का अर्थ डिलीवरी नहीं है: सप्रेस किया गया प्राप्तकर्ता स्वीकार होकर बाद में अस्वीकार हो सकता है। भेजने वाले कॉल के साथ प्रतिक्रिया पार्सिंग, त्रुटि प्रबंधन और आइडेम्पोटेंट तरीके से फिर से प्रयास को भी अपडेट करें।

बैच के लिए data ऐरे पढ़ें और हर संदेश की ID को अपने भेजने के रिकॉर्ड के साथ सहेजें। Bird कतार में डालने से पहले पूरे बैच की जाँच करता है, इसलिए एक अमान्य संदेश पूरे अनुरोध को अस्वीकार करवा सकता है। बड़े ट्रांसमिशन को बैच सीमाओं के भीतर लाने के लिए बाँटें। प्रतिक्रिया अस्पष्ट हो, तो Bird के फिर से प्रयास करने के नियमों का पालन करें।

हर अलग अनुरोध या बैच के हिस्से को उसकी अपनी स्थिर आइडेम्पोटेंसी कुंजी दें। Bird की रीप्ले अवधि SparkPost की अवधि से अलग है। कटओवर या रोलबैक के दौरान दोहराव रोकने के लिए अपने एप्लिकेशन के भेजने के रिकॉर्ड उस अवधि के बाद भी रखें।

SMTP प्रेषकों को स्थानांतरित करें

Bird की SMTP कनेक्शन सेटिंग, यूज़रनेम bird और ईमेल भेजना सक्षम वाली API कुंजी का उपयोग करें। क्षेत्र, TLS और कुंजी का कॉन्फ़िगरेशन जाँचें।

हेडर हटाने से पहले SparkPost के X-MSYS-API विकल्पों को बदलें। श्रेणी, टैग, ट्रैकिंग और पूल के डिफ़ॉल्ट Bird के SMTP कॉन्फ़िगरेशन में सेट करें। ये सेटिंग हर API कुंजी पर लागू होती हैं। अगर ये संदेश-दर-संदेश बदलती हैं, तो अलग-अलग कॉन्फ़िगर की गई कुंजियाँ या HTTP उपयोग करें। हर संदेश के मेटाडेटा या टेम्पलेट पैरामीटर के लिए HTTP उपयोग करें।

हर डिलीवरी प्राप्तकर्ता को SMTP एनवेलप में रखें, दिखने वाले प्राप्तकर्ताओं को MIME To/Cc हेडर में, और Bcc प्राप्तकर्ताओं को केवल एनवेलप में। X-MSYS-API.archive की सूची अलग से बनाएँ। SparkPost की आर्काइव प्रतियाँ मूल प्राप्तकर्ता के ट्रैकिंग URL बनाए रखती हैं, इसलिए साधारण Bcc उनके बराबर नहीं है। उस प्रवाह को बदलने से पहले विकल्प की जाँच करें।

अपनी प्रभावी ट्रैकिंग सेटिंग स्पष्ट रूप से कॉपी करें। Bird की बिना कॉन्फ़िगर की गई SMTP कुंजी ओपन और क्लिक ट्रैकिंग सक्षम करती है, जबकि SparkPost के डिफ़ॉल्ट हर खाते में अलग होते हैं। श्रेणी भी सेट करें। Bird SMTP का डिफ़ॉल्ट ट्रांज़ैक्शनल है और इनलाइन HTTP का मार्केटिंग। न्यूज़लेटर भेजने वालों को दोनों रास्तों पर marketing चाहिए।

SMTP फिर से प्रयास के लिए वही आइडेम्पोटेंसी कुंजी, एनवेलप और बिल्कुल वही MIME बाइट दोबारा उपयोग करें। Date, Message-ID या MIME सीमाएँ फिर से बनाने से पेलोड बदल जाता है और सुरक्षित रूप से फिर से प्रयास करना रुक सकता है।

टेम्पलेट बदलें

जो संस्करण आप वास्तव में भेजते हैं, उन्हें SparkPost के Templates API से निर्यात करें। पहले GET /api/v1/templates?draft=false से सूची बनाएँ, फिर GET /api/v1/templates/{id}?draft=false से सामग्री प्राप्त करें। ज़रूरत हो तो ड्राफ़्ट अलग से सहेजें। सबअकाउंट के साथ साझा टेम्पलेट और संदर्भित स्निपेट भी सूची में शामिल करें।

SparkPost की टेम्पलेट भाषा और Bird का Liquid सिंटैक्स अलग हैं। कंडीशनल, लूप, डिफ़ॉल्ट और नेस्टेड मान बदलें। रेंडरिंग में उपयोग होने वाले प्राप्तकर्ता ओवरराइड और मेटाडेटा को स्पष्ट पैरामीटर में बदलें। उदाहरण के लिए, {{ if ... }} बदलकर {% if ... %} बन जाता है। केवल एक जैसा {{ name }} सिंटैक्स होने से संगतता साबित नहीं होती।

प्रकाशित करने से पहले स्निपेट को पूरा विस्तारित करें, क्योंकि Bird का Liquid include या render का समर्थन नहीं करता। संग्रहीत टेम्पलेट में {{ user.name }} जैसे बाहरी संदर्भों की जगह {{ user_name }} जैसे सपाट पैरामीटर रखें। अगर आप SparkPost पैरामीटर से डायनामिक HTML डालते हैं, तो उसे अपने एप्लिकेशन में रेंडर करें और पूरा बॉडी इनलाइन parameters के बिना भेजें। साधारण HTML पैरामीटर मान एस्केप किए जाते हैं।

एक Bird टेम्पलेट बनाएँ, उसका पूर्वावलोकन करें और उसे प्रकाशित करें, फिर टेम्पलेट के साथ भेजना के चरणों का पालन करें। SparkPost में लागू प्रेषक, Reply-To और कस्टम हेडर भेजने के अनुरोध में शामिल करें, क्योंकि Bird टेम्पलेट केवल सामग्री देते हैं।

इनलाइन Liquid के लिए parameters शामिल करें, भले ही वह {} हो। इसे छोड़ने पर टोकन जस के तस रह जाते हैं। अनुपस्थित मानों, एस्केपिंग और URL की जाँच करें।

अनसब्सक्राइब प्लेसहोल्डर को {{ bird.unsubscribe_url }} से बदलें। Bird मार्केटिंग अनसब्सक्राइब हेडर स्वयं जोड़ता है। 422 अस्वीकृति से बचने के लिए मार्केटिंग ईमेल से कस्टम List-Unsubscribe और List-Unsubscribe-Post हेडर हटा दें।

Bird के अनसब्सक्राइब लिंक उस पते को पूरे वर्कस्पेस में मार्केटिंग ईमेल से ऑप्ट-आउट कर देते हैं। ये लिंक किसी विशेष सूची से ऑप्ट-आउट की सुविधा नहीं देते। यदि आपका SparkPost इंटीग्रेशन अलग-अलग सदस्यताएँ देता है, तो इस व्यवहार की जाँच करें।

प्राप्तकर्ता सूचियाँ स्थानांतरित करें

सदस्यता और वैयक्तिकरण डेटा शामिल करने के लिए हर संग्रहीत प्राप्तकर्ता सूची को GET /api/v1/recipient-lists/{id}?show_recipients=true के साथ निर्यात करें। आयात से पहले गंतव्य ऑडियंस बनाएँ और संपर्क गुण पंजीकृत करें। हर आयात का परिणाम देखें और सदस्यों की संख्या का मिलान करें।

संपर्क गुण संपर्क से जुड़े होते हैं और उसकी सभी ऑडियंस में समान रहते हैं। यदि एक ही पते के लिए कई SparkPost सूचियों में अलग-अलग सब्स्टिट्यूशन डेटा है, तो आयात से पहले उन मानों का मिलान करें, ताकि वे एक-दूसरे को अधिलेखित न करें। Bird के संपर्क गुणों के प्रकार अदिश होते हैं। जो सूची-विशेष या संरचित वैयक्तिकरण सुरक्षित रूप से दर्शाया न जा सके, उसे अपने एप्लिकेशन में रखें।

जब किसी प्रकाशित टेम्पलेट को संपर्क गुणों से भरा जा सकता हो, तब ब्रॉडकास्ट का उपयोग करें। ऑडियंस की सदस्यता भेजना शुरू होने के समय तय होती है, और ब्रॉडकास्ट भेजने व समवर्तिता की सीमाएँ लागू होती हैं। अनुरोध-विशेष पैरामीटर या प्राप्तकर्ताओं की निश्चित सूची के लिए स्वतंत्र बैच संदेशों का उपयोग करें। स्थानांतरित सूची सक्रिय करने से पहले सहमति और सप्रेशन के प्रबंधन की जाँच करें।

सप्रेशन निर्यात करें

प्रोडक्शन में भेजना शुरू करने से पहले निर्यात करें। GET /api/v1/suppression-list?cursor=initial&types=transactional,non_transactional,open_tracking से शुरू करें, फिर पेजिनेशन के अंत तक आगे बढ़ें। प्रकार, स्रोत, सूची ID, सबअकाउंट और टाइमस्टैम्प सहित पूरे रिकॉर्ड सहेजें। मुख्य अकाउंट के लिए X-MSYS-SUBACCOUNT: 0 और हर सबअकाउंट की अपनी सूची के लिए उसकी ID का उपयोग करें। SparkPost का Suppression List API देखें।

मुख्य गाइड के आयात लूप का उपयोग करने से पहले रिकॉर्ड को प्रकार, स्रोत और दायरे के अनुसार वर्गीकृत करें। Bird का POST /v1/email/suppressions एक email लेता है और दोनों श्रेणियों पर पूरे वर्कस्पेस में लागू मैनुअल ब्लॉक बनाता है:

  • ईमेल पाने से रोके गए पते: जिन पतों को सभी श्रेणियों में रोका जाना चाहिए, उन्हें आयात करें। मिलान के लिए मूल निर्यात सुरक्षित रखें, क्योंकि आयात किए गए रिकॉर्ड में Bird का मैनुअल कारण दर्ज होता है।
  • पूरे खाते पर लागू मार्केटिंग ऑप्ट-आउट: POST /v1/preferences का उपयोग channel: "email", handle में पते, status: "revoked" और coverage: "non_transactional" के साथ करें। मिलान के लिए source: "sparkpost-migration" सेट करें। पहले मौजूदा Bird प्राथमिकताओं की समीक्षा करें और अधिक सख्त प्रतिबंधों को बनाए रखें; हर लेखन के बाद applied और लौटाई गई प्राथमिकता की जाँच करें।
  • सूची-विशिष्ट या केवल ट्रांज़ैक्शनल प्रतिबंध: अपने एप्लिकेशन के भेजने की पात्रता नियमों में उनका दायरा बनाए रखें। Bird की ईमेल प्राथमिकताएँ पूरे चैनल पर लागू होती हैं और इन दायरों को व्यक्त नहीं कर सकतीं। मैन्युअल सप्रेशन पासवर्ड रीसेट ईमेल को भी रोक सकता है। प्रभावित ट्रैफ़िक को तब तक रोके रखें जब तक आप विकल्प का सत्यापन न कर लें।
  • ओपन-ट्रैकिंग ऑप्ट-आउट: किसी भी भेजने के प्रतिबंध के अलावा, स्वतंत्र संदेश के लिए track_opens: false सेट करें। SMTP के लिए ओपन ट्रैकिंग बंद की हुई कुंजी का उपयोग करें, या प्रति-संदेश नियंत्रण के लिए HTTP का उपयोग करें।

ऊपर दिया गया प्राथमिकता अनुरोध प्रतिबंध को आयात के समय दर्ज करता है। SparkPost के मूल टाइमस्टैम्प अपने निर्यात में रखें और लिखने से पहले बाद में दी गई किसी भी सहमति का मिलान करें। आयात किए गए रिकॉर्ड और विफल लेखनों का मिलान करें, फिर दोनों श्रेणियों का परीक्षण करें। जब तक दोनों प्रदाता भेज रहे हों, नए ऑप्ट-आउट और सप्रेशन को सिंक करते रहें। कटओवर के बाद भी, पहले डिलीवर हुए SparkPost मेल से आए ऑप्ट-आउट Bird पर लागू करते रहें। नेटिव बाउंस और शिकायत प्रबंधन के लिए सप्रेशन देखें।

वेबहुक इवेंट का अनुवाद करें

SparkPost बैच में वेबहुक इवेंट msys रैपर में भेजता है। Bird हर अनुरोध में एक इवेंट type, timestamp और data के साथ डिलीवर करता है। स्पष्ट इवेंट सब्सक्रिप्शन और सिग्नेचर सत्यापन के साथ एक Bird एंडपॉइंट रजिस्टर करें। SparkPost हैंडलर को उसके बचे हुए ट्रैफ़िक के लिए सक्रिय रखें।

SparkPost इवेंटBird इवेंट
injectionemail.processed
deliveryemail.delivered
delayemail.deferred
bounceemail.bounced
out_of_bandemail.out_of_band_bounce
spam_complaintemail.complained
भेजने के दौरान होने वाली विफलताएँ (नीचे देखें)email.rejected
open, initial_openemail.opened
clickemail.clicked
link_unsubscribeemail.unsubscribed
list_unsubscribeemail.list_unsubscribed

सीधे API और SMTP से भेजे गए संदेश प्रोसेसिंग से पहले email.accepted भेजते हैं। ब्रॉडकास्ट स्वीकृति को इवेंट्स API और ईमेल लॉग में दर्ज करते हैं, लेकिन वह वेबहुक नहीं भेजते। SparkPost के policy_rejection, generation_failure और generation_rejection, email.rejected से मैप होते हैं; rejection_reason की जाँच करें। अद्वितीय एंगेजमेंट गिनते समय ओपन की डुप्लिकेट प्रविष्टियाँ अलग से हटाएँ।

Bird सहसंबंध के लिए data.email_id और data.recipient_id का उपयोग करें, और अपने पहचानकर्ता metadata में भेजें। SparkPost की बैच-ID हैंडलिंग की जगह Bird के वेबहुक डुप्लिकेट हटाने और क्रम के नियम अपनाएँ। किसी पते को सप्रेस करना है या नहीं, यह तय करने से पहले बाउंस का विवरण पढ़ें; बाउंस वर्गीकरण स्थायी पता विफलताओं को अस्थायी या नीति संबंधी विफलताओं से अलग करता है।

रिपोर्टिंग इतिहास सुरक्षित रखें

जिस SparkPost इवेंट इतिहास और समेकित रिपोर्टों की आपको ज़रूरत है, उन्हें उनकी रिटेंशन अवधि समाप्त होने से पहले एक्सपोर्ट करें। इवेंट पेजिनेशन को अंत तक पूरा करें और प्रदाता ID, अकाउंट/सबअकाउंट दायरा, टाइमस्टैम्प और रिपोर्टिंग फ़िल्टर सुरक्षित रखें। दोनों प्रदाताओं के साथ चलने की अवधि में देर से आने वाले इवेंट एकत्र करते रहें, और SparkPost इतिहास को एक अलग संग्रह में रखें।

हर भेजने वाली स्ट्रीम के लिए एक आधार रेखा सहेजें। समान प्राप्तकर्ता समूहों और रिपोर्टिंग अवधियों की तुलना करें, और मीट्रिक परिभाषाएँ जाँचें: प्रदाता द्वारा स्वीकृति, प्राप्तकर्ता सर्वर तक डिलीवरी, अद्वितीय एंगेजमेंट और पहले से लोड किए गए ओपन अलग-अलग माप हैं। केवल मीट्रिक के नाम मेल खाने से दरें तुलनीय नहीं हो जातीं।

इनबाउंड ईमेल को अलग से माइग्रेट करें

यदि आप SparkPost रिले वेबहुक का उपयोग करते हैं, तो उस प्रवाह के लिए ईमेल प्राप्त करना देखें। Bird का email.received वेबहुक एक inbound_message_id देता है। वेबहुक में पूरा संदेश मिलने की अपेक्षा न करें, बल्कि बॉडी, अटैचमेंट या रॉ MIME को API के माध्यम से प्राप्त करें। अपने हैंडलर को Bird फ़ॉरवर्डिंग पते से परखें, फिर MX रिकॉर्ड बदलने से पहले डोमेन पर ईमेल प्राप्त करना तैयार करें। DNS बदलाव के बाद जवाबों की रूटिंग जाँचें। जिस सामग्री की आपको Bird की प्राप्ति प्रतिधारण अवधि के बाद भी ज़रूरत है, उसे संग्रहित करें।

सत्यापन करें और स्विच करें

  1. हर डोमेन की भेजने की क्षमता का सत्यापन करें। सैंडबॉक्स स्मोक टेस्ट और शिकायत वाले मामले चलाएँ। पुष्टि करें कि हस्ताक्षरित इवेंट आपके हैंडलर तक पहुँचते हैं, सही संदेश से जुड़ते हैं, और दोहराई गई डिलीवरी सही ढंग से संभाली जाती है। सैंडबॉक्स इवेंट इनबॉक्स डिलीवरी, रेंडरिंग या ट्रैकिंग को साबित नहीं करते।
  2. अपने सत्यापित डोमेन से नियंत्रित वास्तविक इनबॉक्स पर भेजें। वैयक्तिकरण, To/Cc/Bcc की दृश्यता, अटैचमेंट, प्रमाणीकरण और ट्रैकिंग जाँचें। अनसब्सक्राइब का परीक्षण करें: मार्केटिंग ईमेल रुकने चाहिए, जबकि पात्र ट्रांज़ैक्शनल ईमेल जारी रहने चाहिए। अलग से जाँचें कि सभी श्रेणियों वाले ब्लॉक दोनों को अस्वीकार करते हैं। इन जाँचों को सिम्युलेटेड सैंडबॉक्स परिणामों से अलग रखें।
  3. लंबित शेड्यूल किए गए संदेशों को किसी एक प्रदाता को सौंपें। मूल संदेश को कहीं और दोबारा बनाने से पहले उसे पूरा होने दें या रद्द करें। अपने एप्लिकेशन में रिकॉर्ड रखें कि हर तार्किक संदेश किस प्रदाता ने स्वीकार किया, ताकि फिर से प्रयास या रोलबैक से दूसरी प्रति न जाए।
  4. ट्रैफ़िक का एक नियंत्रित हिस्सा स्थानांतरित करें और डिलीवरी मेट्रिक्स तथा वेबहुक प्रोसेसिंग की निगरानी करें। डेडिकेटेड IP के लिए हमारी टीम के साथ तय की गई माइग्रेशन योजना का पालन करें, जिसमें आवश्यक वार्मअप भी शामिल है। देखे गए परिणाम आपकी डिलीवरी आवश्यकताओं को पूरा करें, तब ट्रैफ़िक बढ़ाएँ।
  5. यदि सत्यापन विफल हो, तो प्रभावित Bird ट्रैफ़िक रोकें और नए संदेश मौजूदा ऑप्ट-आउट लागू करके बनाए रखे गए SparkPost मार्ग से भेजें। अस्पष्ट संदेशों को फिर से प्रयास करने से पहले उनका मिलान करें। कतारों और देर से आने वाले इवेंट का हिसाब हो जाने के बाद पुराने क्रेडेंशियल, वेबहुक और DNS हटाएँ। पहले डिलीवर किए गए ईमेल के लिए पुराने ट्रैकिंग और अनसब्सक्राइब लिंक काम करते रहने दें।

यदि प्रमाणीकरण विफल हो, तो Bird बेयरर टोकन और क्षेत्र जाँचें। यदि प्राथमिकता आयात 403 लौटाते हैं, तो आगे बढ़ने से पहले कुंजी की preferences लिखने की अनुमति जाँचें। यदि वैयक्तिकरण गलत रेंडर हो, तो Liquid रूपांतरण और पैरामीटर जाँचें। यदि ट्रांज़ैक्शनल ईमेल अप्रत्याशित रूप से अस्वीकार हो, तो आयात किए गए मैन्युअल सप्रेशन जाँचें। हर सुधार का सत्यापन करने के लिए ईमेल लॉग और इवेंट विवरण का उपयोग करें।

अगले कदम

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