Kalo te dokumentacioni
Python

Listimi dhe marrja

`emails.list`, `emails.list_all`, `emails.iterate`, `emails.get` dhe `emails.list_events`.

emails.list

list_emails.py
from openemail import openemail first = openemail.emails.list(status=['queued', 'scheduled'], from_='[email protected]', limit=50) if first['nextCursor']:    second = openemail.emails.list(        status=['queued', 'scheduled'],        from_='[email protected]',        limit=50,        cursor=first['nextCursor'],    )

Një faqe është {'items': [...], 'hasMore': ..., 'nextCursor': ...}. Jepeni nextCursor prapa si cursor, me të njëjtët filtra, për faqen pas saj.

emails.iterate dhe emails.list_all

iterate_emails.py
import sys from openemail import openemail for email in openemail.emails.iterate(status='failed'):    print(email['id'], email['lastError'], file=sys.stderr) failures = openemail.emails.list_all(status='failed', from_='[email protected]')

Të dyja e ndjekin nextCursor për ju. iterate është një gjenerator që merr një faqe vetëm kur cikli arrin tek ajo, pra dalja nga cikli i ndal kërkesat, kurse list_all kalon çdo faqe para se të kthejë një listë të vetme, prandaj jepini një filtër që ka fund. Faqosje me keyset sido që të jetë, pra një mesazh që mbërrin gjatë përsëritjes nuk mund ta bëjë këtë të kapërcejë një rresht, siç do të ndodhte me offset.

emails.get dhe emails.list_events

get_email.py
from openemail import openemail email = openemail.emails.get('msg_…')print(email['status'], email['recipients']) events = openemail.emails.list_all_events('msg_…')for event in events:    print(event['type'], event['createdAt'])

get është e vetmja thirrje që kthen recipients, një rresht për adresë. Një listë me pesëdhjetë mesazhe ku secili mban marrësit e vet është një faqe raporti që nuk e kërkoi askush.

Parametrat

statusEmailStatus | Sequence[EmailStatus]
Një status ose disa (`queued`, `scheduled`, `sending`, `sent`, `partial`, `bounced`, `cancelled`, `failed`), duke përputhur cilindo prej atyre që jepen. SDK-ja e dërgon një listë si një vlerë të vetme të ndarë me presje sepse serveri e ndan sipas presjeve; një vlerë jashtë asaj bashkësie është një 422 që e emërton atë të panjohurën.
broadcast_idstr
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 rendit kujt i shkoi dhe çfarë ndodhi me çdo kopje. `broadcasts.list_recipients` rendit të njëjtët persona me hapjet, klikimet dhe çregjistrimet e tyre.
from_str
Përputhje e saktë mbi adresën dërguese ashtu siç u regjistrua, që është `addr@host` i thjeshtë me shkronja të vogla. Rreshti shkruhet me çdo emër shfaqjeje të hequr, pra një angle-addr si `Acme <[email protected]>` nuk përputhet me asgjë. Vlera juaj kthehet në shkronja të vogla para krahasimit, dhe është barazi e jo përputhje prefiksi apo domeni. Nënviza në fund është aty sepse `from` është fjalë kyçe në Python.
limitint
Rreshtat në këtë faqe, nga 1 deri në 100, me parazgjedhje 25. Një vlerë jashtë atij intervali refuzohet si 422 në vend që të shtrëngohet brenda tij.
cursorstr
Një id mesazhi (`msg_…`) prej nga fillon faqja. Keyset dhe jo offset: rreshtat kthehen rreptësisht më të vjetër se `createdAt` i atij mesazhi, kështu që dërgimet që mbërrijnë gjatë faqes nuk mund ta shtyjnë një rresht përtej jush. Një id që nuk emërton asnjë mesazh në këtë hapësirë pune është një 400.
scheduled_fromdatetime | str
Vetëm mesazhet e planifikuara për këtë çast ose më vonë: një `datetime`, ose një çast ISO-8601 me zonë kohore. Një mesazh pa `scheduledAt` lihet jashtë, kështu që me `scheduled_to` dhe `status=['queued', 'scheduled']` kjo liston atë që pret të niset brenda një periudhe.
scheduled_todatetime | str
Vetëm mesazhet e planifikuara për këtë çast ose më herët. Një `scheduled_from` më i vonë se ky është një 422 `invalid_parameter` mbi `scheduledTo`.

Përgjigjja: Page[EmailResource]

itemslist[EmailResource]
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.
nextCursorstr | None
Id-ja për ta dhënë prapa si `cursor`, dhe null te faqja e fundit. `iterate` dhe `list_all` ndalojnë kur kjo është null ose kur `hasMore` është false, meqë një faqe që pretendon se ka më shumë pa emërtuar asnjë cursor do të ciklonte pafundësisht.
items[].objectLiteral['email']
Gjithmonë `'email'` te një rresht i kësaj liste.
items[].idstr
Id-ja e vetë këtij API-je, `msg_…`. Është ajo që merr çdo endpoint tjetër i emails, dhe ajo që emërton një cursor.
items[].statusEmailStatus
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.
items[].modeApiKeyMode
`live` ose `test`, marrë nga çelësi që e dërgoi. Një dërgim test regjistrohet këtu dhe nuk transmetohet kurrë.
items[].fromstr
Adresa nën të cilën u autorizua dërgimi, e ruajtur e thjeshtë dhe me shkronja të vogla, kështu që një emër shfaqjeje i dhënë te `from` del gjithsesi në rrjet, por nuk ruhet këtu. Një string i thjeshtë dhe jo një dict, sepse ky është identiteti që u autorizua: një adresë jashtë fushëveprimit të dërgimit të një çelësi, as në një domen që ai e mban, as e emërtuar mbi të, refuzohet me një 403, kurrë nuk zëvendësohet në heshtje me një që ai e ka.
items[].subjectstr | None
Subjekti ashtu siç është ruajtur. Null te një mesazh i regjistruar pa të.
items[].messageIdstr | None
Message-ID sipas RFC 5322, jo id-ja jonë. Null derisa të ekzistojë MIME-i, dhe i rishkruar nga shërbimi dërgues në dalje, pra një bounce ose DSN i mëvonshëm mban një id tjetër dhe korrelon mbi `items[].id`.
items[].threadIdstr | None
Thread-i të cilit i përket ky mesazh, aty ku është dhënë ose caktuar një i tillë. Null përndryshe.
items[].transportEmailTransport | str | None
Si u nisën bajtet. Null deri te nisja, dhe e tipizuar hapur, kështu që një transport që kjo SDK nuk e emërton ende nuk është një ndryshim prishës: regjistrat e ruajtur mund të emërtojnë ende të tillë që nuk janë më në përdorim.
items[].attemptsint
Sa përpjekje nisjeje ka pasur mesazhi, 0 para të parës.
items[].lastErrorstr | None
Gabimi i fundit i nisjes, i shkruar për një njeri. Null përderisa nuk ka dështuar asgjë.
items[].scheduledAtstr | None
Kur mesazhi duhet të niset, si një çast ISO-8601. Null vetëm te një dërgim i menjëhershëm pa dritare anulimi: një dritare është një vonesë e shkurtër dhe asgjë më shumë, pra edhe `cancellableForSeconds` e mbush këtë, te një rresht `status`-i i të cilit është `queued` dhe jo `scheduled`.
items[].cancellableUntilstr | None
Ç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`.
items[].sentAtstr | None
Kur u nis. Null derisa nisja të ketë përfunduar, prandaj `status` dhe jo kjo është fusha mbi të cilën duhet degëzuar.
items[].tagsdict[str, str]
Etiketat e dhëna gjatë dërgimit, të kthyera ashtu siç janë dhe kurrë të interpretuara. Gjithmonë një dict (`{}` kur nuk është vendosur asnjë, kurrë null), dhe vetëm të kthyera: kjo thirrje filtron sipas `status`, `from_`, `broadcast_id`, `scheduled_from` dhe `scheduled_to`, ndaj një etiketë është diçka që lexohet nga një mesazh, jo një mënyrë për ta gjetur.
items[].broadcastIdstr | None
Transmetimi `brd_` i të cilit ky mesazh është një kopje, ose null për një mesazh të dërguar më vete.
items[].sourceEmailSource | str
Cila sipërfaqe e kërkoi dërgimin: `composer`, `api`, `mcp`, `ai`, `oauth` ose `form`. `api` është ky klient me një çelës API, dhe `oauth` është ky klient me një token qasjeje.
items[].createdAtstr
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.
items[].trackingNotRequired[EmailTrackingSummary]
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 `openCount: 0` do të lexohej si "askush nuk e hapi".
items[].tracking.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.
items[].tracking.clicksbool
Nëse lidhjet e këtij mesazhi u rishkruan. False kur trupi nuk kishte lidhje për të rishkruar, meqë atëherë nuk u ndryshua asgjë.
items[].tracking.openedbool
Nëse u regjistrua ndonjë hapje e numëruar, e nxjerrë nga `openCount > 0`.
items[].tracking.clickedbool
Nëse u regjistrua ndonjë klikim i numëruar, i nxjerrë nga `clickCount > 0`.
items[].tracking.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ë.
items[].tracking.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.
items[].tracking.firstOpenAtstr | None
Hapja e numëruar më e hershme mbi kopjet, dhe null përderisa nuk ka asnjë. Goditjet e makinave nuk e lëvizin kurrë.
items[].translationNotRequired[EmailTranslationResource]
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`.

Referencë