इंस्टॉल
एक पैकेज, तीन dependency, Python 3.10 और उससे ऊपर।
इंस्टॉल
मौजूदा रिलीज़ 0.0.1 है। इसमें TypeScript SDK के हर मेथड के लिए उसी नाम से, snake_case में, एक मेथड है, और कोई मेथड छूट जाए या अलग अनुरोध भेजे तो पैकेज की parity जाँच बिल्ड फेल कर देती है।
pip install openemailimport os from openemail import init, openemail init(os.environ['OPENEMAIL_API_KEY']) email = openemail.emails.send({ 'from': 'Acme Billing <[email protected]>', 'to': '[email protected]', 'subject': 'Your September invoice', 'html': '<p>Invoice attached.</p>',}) print(email['id'], email['status'])init साझा openemail क्लाइंट को एक बार कॉन्फ़िगर करता है, और उसके बाद जो भी मॉड्यूल openemail import करता है उसे वही क्लाइंट मिलता है। इसे छोड़ दें तो पहला कॉल क्लाइंट को OPENEMAIL_API_KEY से बना लेता है।
अनुरोध की body API के अपने फ़ील्ड नामों वाला एक सादा dict है, इसलिए from, replyTo और scheduledAt ठीक वैसे ही दिखते हैं जैसे API संदर्भ में, और रिस्पॉन्स भी एक dict है। हर body और रिस्पॉन्स के लिए openemail.types में एक TypedDict है, इसलिए आपका एडिटर keys पूरी कर देता है और type checker ग़लत वर्तनी वाली key पकड़ लेता है।
send() का लौट आना इसका मतलब नहीं कि संदेश चला गया। शेड्यूल किया गया या रद्द किया जा सकने वाला send queued या scheduled लौटता है और बाद में तय होता है। status पढ़ें, न कि यह कि कॉल लौट आई।
यह कहाँ चलता है
Python 3.10 और नए वर्शन, तीन dependency के साथ: HTTP के लिए httpx, एसिंक क्लाइंट के लिए anyio और types के लिए typing-extensions। हर अनुरोध httpx से होकर जाता है, और आप उसे अपना httpx.Client दे सकते हैं, या AsyncOpenEmail के लिए एक httpx.AsyncClient।
OpenEmail स्क्रिप्ट, workers और सिंक्रोनस वेब ऐप के लिए ठीक है, और AsyncOpenEmail asyncio या trio पर चलने वाले event loop के लिए। दोनों इसी एक पैकेज में, एक जैसे मेथड के साथ आते हैं।
एक क्लाइंट को कई थ्रेड्स के बीच साझा करना सुरक्षित है, इसलिए एक worker प्रोसेस को बस एक ही क्लाइंट चाहिए। यह एक कनेक्शन पूल रखता है, जिसे close() या with ब्लॉक का अंत बंद करता है।
पैकेज py.typed के साथ आता है और strict mode में mypy और pyright दोनों की जाँच पास करता है, इसलिए type checker हर मेथड, body और रिस्पॉन्स को ठीक वैसे ही पढ़ता है जैसे वे लिखे गए हैं।
क्लाइंट एक वर्कस्पेस API कुंजी रखता है जो मेल भेज सकती है और मेलबॉक्स पढ़ सकती है, इसलिए उसकी जगह सर्वर पर, किसी job में या आपकी अपनी मशीन पर चलने वाले टूल में है। कुंजी को एनवायरनमेंट वेरिएबल या secret manager में रखें, कोड में कभी नहीं।