Sign inGet Started

अटैचमेंट

POST /v1/email/messages पेलोड में attachments array जोड़कर भेजने में फ़ाइलें अटैच करें। हर एंट्री में फ़ाइल के बाइट्स content में base64-encoded होते हैं, साथ में एक filename भी। यही array batch आइटम पर भी काम करता है। पूरी request और response स्कीमा API संदर्भ में हैं।

एक अटैचमेंट के साथ भेजना

await bird.email.send({
  from: "hello@yourdomain.com",
  to: ["delivered@messagebird.dev"],
  subject: "Your invoice",
  html: "<p>Thanks for your order. Your invoice is attached.</p>",
  attachments: [
    {
      filename: "invoice.pdf",
      content: "JVBERi0xLjcKJ...",
      content_type: "application/pdf",
    },
  ],
});
CLI फ़ाइल पढ़कर आपके लिए base64-encode करता है; API पर आप encoded बाइट्स खुद देते हैं। Go SDK रॉ बाइट्स लेता है और उन्हें वायर पर encode करता है।
content रॉ फ़ाइल बाइट्स हैं, base64-encoded। content_type वैकल्पिक है: जब आप इसे छोड़ते हैं, तो हम filename एक्सटेंशन से MIME type अनुमान लगाते हैं, और अपरिचित एक्सटेंशन के लिए application/octet-stream पर फ़ॉलबैक करते हैं। भेजने के बारे में बाकी सब कुछ ईमेल भेजना जैसा ही काम करता है: 202, async मॉडल, टैग, और मेटाडेटा अटैचमेंट की उपस्थिति से अपरिवर्तित रहते हैं।

अटैचमेंट फ़ील्ड

फ़ील्डटाइपआवश्यकनोट्स
filenamestringहाँ1 से 255 अक्षर; प्राप्तकर्ता को दिखाया जाता है। कोई लाइन ब्रेक या कंट्रोल कैरेक्टर नहीं।
contentstringहाँBase64-encoded फ़ाइल बाइट्स।
content_typestringनहींMIME type; छोड़ने पर फ़ाइलनाम एक्सटेंशन से अनुमान लगाया जाता है।
content_idstringनहीं1 से 128 अक्षर, [A-Za-z0-9._-]। फ़ाइल को अटैच के बजाय इनलाइन रेंडर करने के लिए इसे सेट करें।
एक ईमेल में अधिकतम 20 अटैचमेंट हो सकते हैं (attachments 20 आइटम तक सीमित है)।

इनलाइन इमेज

किसी इमेज को अटैच करने के बजाय HTML बॉडी में एम्बेड करने के लिए, अटैचमेंट को content_id दें और मार्कअप में cid: URL से उसे रेफ़रेंस करें:
कोड उदाहरण
{
  "html": "<p>Welcome aboard!</p><img src=\"cid:welcome-banner\"/>",
  "attachments": [
    {
      "filename": "banner.png",
      "content": "iVBORw0KGgoAAAANS...",
      "content_type": "image/png",
      "content_id": "welcome-banner"
    }
  ]
}
content_id cid: रेफ़रेंस और अटैचमेंट के बीच की कड़ी है। हर इनलाइन इमेज को भेजने के भीतर एक अद्वितीय content_id चाहिए; डुप्लिकेट 422 के साथ अस्वीकार कर दिया जाता है। बिना content_id वाला अटैचमेंट सामान्य फ़ाइल अटैचमेंट के रूप में डिलीवर होता है।

साइज़ बजट

हम ऐसे भेजे को अस्वीकार करते हैं जिसका अनुमानित जनरेटेड संदेश साइज़ 20 MB से अधिक हो, 413 के साथ। अनुमान HTML बॉडी और टेक्स्ट बॉडी और हर अटैचमेंट का base64 एन्कोडिंग के बाद मापा गया योग है। एन्कोडिंग रॉ बाइट्स को लगभग 4/3 गुना बढ़ाती है, इसलिए 15 MB की फ़ाइल अकेले ही पूरे 20 MB बजट को भर देती है। अंगूठे के नियम के रूप में, कुल रॉ अटैचमेंट कंटेंट 15 MB से काफ़ी कम रखें ताकि बॉडी और MIME रैपिंग भी समा सकें।
प्राप्तकर्ता सर्वर कम साइज़ सीमाएँ लागू कर सकते हैं। Bird द्वारा स्वीकार किया गया संदेश भी बाउंस हो सकता है अगर प्राप्तकर्ता का सर्वर उसका साइज़ अस्वीकार कर दे। जिन मेलबॉक्स प्रोवाइडर और संगठनों को आप भेजते हैं, उनके अनुसार अटैचमेंट साइज़ चुनें।
प्राप्त संदेशों के लिए, इनबाउंड संदेश साइज़ देखें।

ब्लॉक किए गए फ़ाइल प्रकार

एक्ज़ीक्यूटेबल और स्क्रिप्ट अटैचमेंट वैलिडेशन के समय 422 के साथ अस्वीकार कर दिए जाते हैं, content_type या फ़ाइलनाम एक्सटेंशन के आधार पर। ब्लॉक किए गए एक्सटेंशन में .exe, .dll, .msi, .bat, .cmd, .scr, .jar, .js, .vbs, .ps1, .sh, .hta, और .lnk शामिल हैं। समकक्ष MIME types जैसे application/x-msdownload, application/java-archive, और text/javascript भी ब्लॉक हैं। यह वैलिडेशन वायरस स्कैनर नहीं है। किसी ब्लॉक की गई फ़ाइल को वितरित करने के लिए, उसे लिंक के पीछे होस्ट करें।

बैच में

बैच भेजने में हर आइटम का अपना attachments हो सकता है, उसी फ़ील्ड अनुबंध और उसी प्रति-संदेश 20 MB बजट के साथ। बैच की serialized request बॉडी की अपनी अलग ऊपरी सीमा होती है, जिसे base64-encoded अटैचमेंट जल्दी भर देते हैं; बैच-स्तरीय सीमा और उसे विभाजित करने के तरीके के लिए बैच भेजना देखें।

अटैचमेंट पढ़ना और डाउनलोड करना

API रीड में अटैचमेंट बाइट्स कभी नहीं आते। GET /v1/email/messages/{message_id} केवल मेटाडेटा का attachments array लौटाता है; हर एंट्री में अटैचमेंट id, filename, content_type, size (decoded बाइट्स), और inline होते हैं:
कोड उदाहरण
{
  "attachments": [
    {
      "id": "ea_019c...",
      "filename": "invoice.pdf",
      "content_type": "application/pdf",
      "size": 215432,
      "inline": false
    }
  ]
}
रॉ बाइट्स वापस पाने के लिए, GET /v1/email/messages/{message_id}/attachments/{attachment_id} कॉल करें (संदर्भ)। यह फ़ाइल को उसके अपने content type और फ़ाइलनाम बताने वाले Content-Disposition हेडर के साथ स्ट्रीम करता है। दो शर्तें इसे नियंत्रित करती हैं:
  • वर्कस्पेस के लिए कंटेंट स्टोरेज सक्षम होना चाहिए। स्टोरेज अक्षम होने पर, डाउनलोड के लिए कुछ भी स्टोर नहीं होता। देखें 202 का मतलब क्या है।
  • अटैचमेंट भेजने के बाद 30 दिनों तक रखे जाते हैं। उसके बाद डाउनलोड 410 Gone लौटाता है।
404 का मतलब है कि संदेश में कोई स्टोर किया गया कंटेंट नहीं है या उस ID वाला कोई अटैचमेंट नहीं है; 425 Too Early का मतलब है कि अटैचमेंट अभी स्टोर हो रहा है और थोड़ी देर में फिर से प्रयास किया जा सकता है।

अगले कदम

संबंधित संसाधन

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।

अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ