Kalo te dokumentacioni
PHP

Listimi dhe marrja

`emails->list`, `emails->listAll`, `emails->iterate`, `emails->get` dhe `emails->listEvents`.

emails->list

list_emails.php
$filters = ['status' => ['queued', 'scheduled'], 'from' => '[email protected]']; $first = $client->emails->list(...$filters, limit: 50);$second = $first->hasMore ? $client->emails->list(...$filters, limit: 50, cursor: $first->nextCursor) : null; echo count($first), ' ', $second === null ? 0 : count($second), PHP_EOL;

Një faqe është një OpenEmail\Result\Page me items, hasMore dhe nextCursor. Për faqen pas saj, jepeni nextCursor prapa si cursor:, me të njëjtët filtra. Shpërndarja e një array-i të vetëm filtrash në çdo thirrje, siç bën ...$filters, i mban ata të njëjtë.

emails->iterate dhe emails->listAll

iterate_emails.php
foreach ($client->emails->iterate(status: 'failed') as $email) {    error_log($email['id'] . ' ' . ($email['lastError'] ?? ''));} $failures = $client->emails->listAll(status: 'failed', from: '[email protected]');echo count($failures), PHP_EOL;

Të dyja ndjekin nextCursor për ju. iterate kthen një Generator që merr një faqe vetëm kur përshkimi arrin aty, ndaj një break jashtë foreach i ndalon kërkesat, ndërsa listAll i përshkon të gjitha faqet para se të kthejë një array të vetëm, ndaj jepini një filtër që ka fund. Në të dyja rastet faqosja bëhet sipas çelësit (keyset), ndaj një mesazh që mbërrin në mes të përshkimit nuk mund të bëjë që të kapërcehet një rresht, siç do të ndodhte me një zhvendosje (offset).

emails->get dhe emails->listEvents

get_email.php
$email = $client->emails->get('msg_3f9a1c07d2b84e6a9c5b1f20');echo $email['status'], PHP_EOL;print_r($email['recipients']); $events = $client->emails->listAllEvents('msg_3f9a1c07d2b84e6a9c5b1f20'); foreach ($events as $event) {    echo $event['type'], ' ', $event['createdAt'], PHP_EOL;}

get është e vetmja thirrje që kthen recipients, një array për çdo adresë me status, error dhe deliveredAt të vetat. Një listë me pesëdhjetë mesazhe, secili me marrësit e vet, do të ishte një faqe raporti që nuk e ka kërkuar askush.

listEvents lexon gjurmën e ngjarjeve të një dërgimi, nga më e vjetra: email.accepted, email.queued, email.sent, email.delivered, email.bounced, email.opened dhe të tjerat, secila me një array data forma e të cilit varet nga type i saj. listAllEvents dhe iterateEvents e përshkojnë gjithë gjurmën për ju. Webhook-et dërgojnë një nënbashkësi të të njëjtave ngjarje ndërsa ndodhin, ndaj këtu duhet të shikoni kur një webhook ka humbur.

Parametrat

statusstring or array
Një status ose disa (`queued`, `scheduled`, `sending`, `sent`, `partial`, `bounced`, `cancelled`, `failed`), që përputhen me cilindo prej atyre të dhëna. `bounced` do të thotë se mesazhi u kthye nga çdo marrës te i cili shkoi, ndërsa një mesazh që u kthye për disa dhe arriti te të tjerët shfaqet si `partial`. Klienti e dërgon një array si një vlerë të vetme të ndarë me presje, sepse serveri ndan sipas presjeve, dhe një vlerë jashtë bashkësisë jep një 422 që e emërton vlerën e panjohur.
broadcastIdstring
Vetëm kopjet e një transmetimi, një id `brd_` nga `broadcasts->send`. Çdo person që arrin një transmetim merr një mesazh të vetin, ndaj kjo liston kujt i shkoi dhe çfarë ndodhi me çdo kopje. `broadcasts->listRecipients` liston të njëjtët njerëz me hapjet, klikimet dhe çregjistrimet e tyre.
fromstring
Përputhje e saktë me adresën dërguese siç u regjistrua, që është `addr@host` e zhveshur me shkronja të vogla. Rreshti shkruhet pa emrin e shfaqjes, ndaj një adresë me kllapa këndore si `Acme <[email protected]>` nuk përputhet me asgjë. Vlera juaj kthehet në shkronja të vogla para krahasimit, dhe krahasimi bëhet sipas barazisë, jo sipas prefiksit apo domenit.
scheduledFromDateTimeInterface or string
Vetëm mesazhet e planifikuara për këtë çast ose më vonë. Me `scheduledTo:` dhe `status: ['scheduled', 'queued']` liston çfarë pret të niset brenda një dritareje kohore, ashtu siç bën kalendari i aplikacionit. Një mesazh pa `scheduledAt` lihet jashtë. Jepni një `DateTimeInterface`, që dërgohet si çast në UTC, ose një çast ISO 8601 me zhvendosjen e tij: një string date pa orë refuzohet nga këta dy filtra.
scheduledToDateTimeInterface or string
Vetëm mesazhet e planifikuara për këtë çast ose më herët. Një `scheduledFrom:` pas `scheduledTo:` jep një 422 `invalid_parameter`.
limitint
Rreshtat në këtë faqe, nga 1 deri në 100, me 25 si parazgjedhje. Një vlerë jashtë këtij diapazoni refuzohet me 422 në vend që të kufizohet. Te `listAll` dhe `iterate` është madhësia e çdo faqeje që marrin.
cursorstring
Një id mesazhi (`msg_…`) nga e cila të faqosni. Sipas çelësit (keyset) dhe jo sipas zhvendosjes: rreshtat kthehen rreptësisht më të vjetër se `createdAt` i atij mesazhi, ndaj dërgimet që mbërrijnë në mes të faqes nuk mund ta shtyjnë një rresht përtej jush. Një id që nuk emërton asnjë mesazh në këtë hapësirë pune jep një 400 `invalid_cursor`.
apiKeystring
Liston me këtë çelës në vend të atij të klientit.

Një çelës i ngushtuar te disa adresa lexon vetëm mesazhet e dërguara nga adresat që mbulon, dhe faqja pritet pas atij filtri, ndaj çdo faqe përveç së fundit mban prapëseprapë limit rreshta. Një from: që çelësi nuk e mbulon kthen një faqe të fundit bosh dhe jo një 403.

Përgjigjja: OpenEmail\Result\Page

itemsarray
Një faqe mesazhesh, më të rejat të parat sipas `createdAt`, e nxjerrë nga zarfi `data` i API-së. Rreshtat e listës nuk mbajnë kurrë ndarjen `recipients` sipas adresës. Ajo është te `get`.
hasMorebool
Nëse përputhen me filtrin edhe rreshta të tjerë përtej kësaj faqeje. Përgjigjet duke marrë një rresht më shumë se `limit` në vend të një query-je të dytë numërimi.
nextCursorstring or null
Id-ja që jepet prapa si `cursor:`, dhe null në faqen e fundit. `iterate` dhe `listAll` ndalojnë kur kjo është null ose `hasMore` është false, sepse një faqe që pretendon se ka më shumë pa emërtuar asnjë cursor do të përsëritej pafundësisht.

Çdo element

objectstring
Gjithmonë `email` te një rresht i kësaj liste.
idstring
Id-ja e vetë kësaj API-je, `msg_…`. Është ajo që merr çdo thirrje tjetër e emails dhe ajo që emërton një cursor.
statusstring
Ku ndodhet mesazhi në jetën e tij. `partial` është një gjendje më vete dhe jo një nuancë e failed: disa marrës e kanë dhe nuk mund t'u hiqet, pra riprovimi është i gabuar. `bounced` do të thotë se u kthye nga çdo marrës pasi u nis, kështu që askush nuk e ka, dhe çdo marrës te `get` tregon pse.
modestring
`live` ose `test`, marrë nga çelësi që e dërgoi. Një dërgim test regjistrohet këtu dhe nuk transmetohet kurrë.
fromstring
Adresa nën të cilën u autorizua dërgimi, e ruajtur e zhveshur dhe me shkronja të vogla, ndaj një emër shfaqjeje i dhënë te `from` del prapëseprapë në rrjet, por nuk ruhet këtu. Një string i thjeshtë dhe jo një array, sepse ky është identiteti që u autorizua: një adresë jashtë fushës së dërgimit të një çelësi, që as nuk është në një domen që ai mban, as nuk emërtohet në të, refuzohet me një 403 dhe nuk zëvendësohet kurrë në heshtje me një adresë që e mbulon.
subjectstring or null
Subjekti siç është ruajtur. null te një mesazh i regjistruar pa subjekt.
messageIdstring or null
Message-ID sipas RFC 5322, jo id-ja jonë. null derisa të ekzistojë MIME-ja, dhe e rishkruar nga shërbimi i dërgimit në dalje, ndaj një kthim ose DSN i mëvonshëm mbart një id tjetër dhe lidhet përmes `id` në vend të saj.
threadIdstring or null
Thread-i të cilit i përket ky mesazh, kur u dha ose u caktua një i tillë. Përndryshe null.
transportstring or null
Si u nisën bajtet. null deri në nisje. Regjistrat e ruajtur mund të emërtojnë ende transporte që nuk përdoren më, ndaj trajtojeni një vlerë që nuk e njihni si informacion dhe jo si gabim.
attemptsint
Sa përpjekje nisjeje ka pasur mesazhi, 0 para të parës.
lastErrorstring or null
Gabimi më i fundit i nisjes, i shkruar për një person. null sa kohë që asgjë nuk ka dështuar.
scheduledAtstring or null
Kur duhet të niset mesazhi, si çast ISO 8601. null vetëm te një dërgim i menjëhershëm pa dritare anulimi: një dritare është thjesht një vonesë e shkurtër, ndaj edhe `cancellableForSeconds` e plotëson këtë, te një rresht `status` i të cilit është `queued` dhe jo `scheduled`.
cancellableUntilstring or null
Çasti kur mesazhi duhet të niset, që mban të njëjtën vlerë si `scheduledAt` te çdo dërgim i shtyrë dhe null te një i pashtyrë. Është një timestamp për t'u shfaqur dhe jo testi që bën serveri: `cancel` degëzon mbi `status` dhe e ndal një mesazh vetëm përderisa ai është ende `queued` ose `scheduled`.
sentAtstring or null
Kur u nis. null derisa të përfundojë nisja, prandaj fusha sipas së cilës duhet vendosur është `status` dhe jo kjo.
tagsarray
Etiketat e dhëna gjatë dërgimit, të kthyera ashtu siç janë dhe kurrë të interpretuara. Gjithmonë një array, bosh kur nuk është vendosur asnjë dhe kurrë null, dhe vetëm të kthyera: kjo listë filtron sipas `status`, `from`, `broadcastId` dhe dritares së planifikimit, ndaj një etiketë është diçka që lexohet nga një mesazh, jo një mënyrë për ta gjetur.
broadcastIdstring or null
Transmetimi `brd_` i të cilit ky mesazh është një kopje, ose null për një mesazh të dërguar më vete.
sourcestring
Cila sipërfaqe e kërkoi dërgimin: `composer`, `api`, `mcp`, `ai` ose `queue`. `api` është ky klient.
createdAtstring
Kur u shkrua regjistri i dërgimit, që është para nisjes. Kjo është fusha sipas së cilës rendit lista dhe fusha me të cilën krahasohet një cursor.
trackingarray
Përmbledhja e angazhimit, e pranishme vetëm te një rresht mesazhi i të cilit u gjurmua dhe e munguar përndryshe. Mungesa është përgjigjja për “a u gjurmua ky”, aty ku një `openCount` prej 0 do të lexohej si “askush nuk e hapi”, ndaj lexojeni me `?? null` në vend që të supozoni se çelësi ekziston.
translationarray
Kurrë e pranishme te një rresht liste: regjistri i përkthimit ndodhet te kërkesa e ruajtur, të cilën një listë me qëllim nuk e merr. Mungesa e tij këtu nuk thotë asgjë për faktin nëse mesazhi u përkthye. Pyesni `get`.

Gjurmimi i një elementi

opensbool
Nëse ky mesazh u nis me një piksel. Ajo që u zbatua mbi këtë mesazh, jo ajo që thotë cilësimi i llogarisë tani.
clicksbool
Nëse lidhjet e këtij mesazhi u rishkruan. False kur trupi nuk kishte lidhje për t’u rishkruar, sepse atëherë nuk ndryshoi asgjë.
openedbool
Nëse u regjistrua ndonjë hapje e numëruar, e nxjerrë nga `openCount` mbi 0.
clickedbool
Nëse u regjistrua ndonjë klikim i numëruar, i nxjerrë nga `clickCount` mbi 0.
openCountint
Hapje që besohet se i shkaktoi një person, të mbledhura mbi çdo kopje të mesazhit. Skanuesit dhe proxy-t e privatësisë regjistrohen, por përjashtohen, dhe marrjet e përsëritura brenda tridhjetë sekondave bashkohen në një.
clickCountint
Klikime të numëruara, të mbledhura mbi kopjet. Të deduplikuara për lidhje dhe jo për mesazh, sepse ndjekja e dy lidhjeve me disa sekonda diferencë janë dy veprime dhe jo një përsëritje.
firstOpenAtstring or null
Hapja e numëruar më e hershme mbi kopjet, dhe null përderisa nuk ka asnjë. Goditjet e makinave nuk e lëvizin kurrë.