दस्तावेज़ पर जाएँ
PHP

चेंजलॉग

पैकेज का हर रिलीज़, नवीनतम पहले।

0.0.1

पहली रिलीज़। यह पूरे TypeScript SDK को कवर करती है, जैसा वह इस रिलीज़ के समय था: 41 नेमस्पेस में 430 मेथड, हर एक अपने TypeScript नाम से, और उनमें से हर एक बाइट-दर-बाइट वही रिक्वेस्ट भेजता है जो उसका TypeScript जुड़वाँ भेजता है।

  • OpenEmail\OpenEmail में हर नेमस्पेस के लिए एक property है, emails, threads और templates से लेकर providerImports, dnsConnections और account तक, और हर एक के मेथड अपने TypeScript नाम रखते हैं।
  • रिक्वेस्ट बॉडी एक associative array है जिसकी कुंजियाँ API के camelCase नाम रखती हैं, और options idempotencyKey: और apiKey: जैसे named आर्ग्युमेंट हैं। जवाब डिकोड किए गए associative array के रूप में लौटता है।
  • हर पेज होने वाले resource में list है, जो एक Page लौटाता है, listAll, जो हर आइटम एक array के रूप में लौटाता है, और iterate, जो एक Generator लौटाता है जो अगला पेज तभी लाता है जब वहाँ पहुँचता है। PeoplePage, TempMessagesPage, AddressBookPage, AddressBook, BatchResult और TemplateSends उन जवाबों को रखते हैं जिनमें सूची से ज़्यादा कुछ होता है।
  • API का अस्वीकार ApiException या error टाइप के लिए उसकी subclass throw करता है, status, type, errorCode, param, docUrl, requestId, retryAfterSeconds, fields और body के साथ, और isValidation() और isStepUpRequired() जैसे मेथड के साथ। कोई जवाब न आने पर NetworkException throw होता है, समय-सीमा बीत जाने पर isTimeout() के साथ। कॉल की अपनी ग़लती कुछ भी भेजे जाने से पहले InvalidArgumentException throw करती है। हर एक OpenEmailException को implement करता है।
  • new OpenEmail() और OpenEmail::createClient() जो कुछ आप छोड़ देते हैं उसके लिए OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN और OPENEMAIL_BASE_URL पढ़ते हैं, और OpenEmail::init(), OpenEmail::getClient() और OpenEmail::resetClient() एक साझा क्लाइंट संभालते हैं। OpenEmail::createTempMail() बिना क्रेडेंशियल के डिस्पोज़ेबल इनबॉक्स खोलता है।
  • accessToken: एक OAuth access टोकन लेता है, या उसे लौटाने वाला callable, जो हर रिक्वेस्ट से पहले कॉल होता है। हर मेथड एक कॉल के लिए दूसरी कुंजी से काम करने के लिए apiKey: लेता है, और tempMail के मेथड inboxToken: लेते हैं। क्रेडेंशियल ले जाने वाले हर पैरामीटर पर #[\SensitiveParameter] लगा है।
  • OpenEmail::verifyWebhookSignature() delivery को स्थिर समय में जाँचता है, पाँच मिनट से पुरानी delivery को अस्वीकार करता है और डिकोड किया गया event लौटाता है। यह signature को किसी भी case वाले हेडर के array से, $_SERVER से, Symfony या Laravel के header bag से, या PSR-7 रिक्वेस्ट से पढ़ता है।
  • OpenEmail::toBase64(), isApiKey(), isAccessToken(), isSealed(), resolveLanguage(), languageByCode() और isRtlLanguage() TypeScript SDK के helpers हैं, और उसके पैकेज root द्वारा export किया गया हर मान समूह OpenEmail\Constants में एक क्लास है।
  • इसे curl और json एक्सटेंशन वाले PHP 8.2 या बाद के संस्करण के सिवा कुछ नहीं चाहिए। रिक्वेस्ट हर क्लाइंट के एक cURL handle से जाती हैं, जो रिक्वेस्ट के बीच अपना कनेक्शन खुला रखता है और pcntl_fork के बाद नया खोलता है, और timeout: पूरे प्रयास की सीमा तय करता है। Psr18HttpClient इसके बजाय उन्हें Guzzle, Symfony HttpClient या किसी भी दूसरे PSR-18 क्लाइंट से भेजता है।
  • reads, sends और दोहराने में सुरक्षित हर write पर 408, 500, 502, 503 और 504 पर backoff के साथ पुनः प्रयास होता है, और 429 पर सिर्फ़ तब जब उसका Retry-After एक मिनट या उससे कम हो। हर send में एक idempotency कुंजी होती है जिसे उसके पुनः प्रयास दोबारा इस्तेमाल करते हैं।
  • क्लाइंट इस मशीन के अलावा किसी को सादे http: पर क्रेडेंशियल भेजने से इनकार करता है, 0.0.0.0 पर बेस URL को अस्वीकार करता है, रिक्वेस्ट को विभाजित कर देने वाले हेडर को अस्वीकार करता है, और raw->request() को कभी बेस URL के origin से बाहर नहीं जाने देता।