Pāriet uz dokumentāciju
SDK

Uzskaitīt un iegūt

`emails.list`, `emails.listAll`, `emails.iterate`, `emails.get` un `emails.listEvents`.

emails.list

list-emails.ts
const first = await openemail.emails.list({  status: ['queued', 'scheduled'],  from: '[email protected]',  limit: 50,}) const second = first.nextCursor  ? await openemail.emails.list({ status: ['queued', 'scheduled'], limit: 50, cursor: first.nextCursor })  : null

Lapa ir { items, hasMore, nextCursor }. Padodiet nextCursor atpakaļ kā cursor ar tiem pašiem filtriem, lai iegūtu nākamo lapu.

emails.iterate un emails.listAll

iterate-emails.ts
for await (const email of openemail.emails.iterate({ status: 'failed' })) {  console.error(email.id, email.lastError)} const failures = await openemail.emails.listAll({ status: 'failed', from: '[email protected]' })

Abi seko nextCursor jūsu vietā. iterate ielādē lapu tikai tad, kad cikls līdz tai nonāk, tāpēc iziešana no cikla aptur pieprasījumus, savukārt listAll pārstaigā katru lapu, pirms atrisinās par vienu masīvu, tāpēc dodiet tam filtru, kas beidzas. Abos gadījumos tā ir atslēgu kopas (keyset) lappušošana, tāpēc ziņojums, kas pienāk iterācijas vidū, nevar likt izlaist rindu, kā tas notiktu ar nobīdi.

emails.get un emails.listEvents

get-email.ts
const email = await openemail.emails.get('msg_…')console.log(email.status, email.recipients) const events = await openemail.emails.listEvents('msg_…')for (const event of events) console.log(event.type, event.createdAt)

get ir vienīgais izsaukums, kas atgriež recipients — vienu rindu katrai adresei. Piecdesmit ziņojumu saraksts, kur katram līdzi ir tā adresāti, ir atskaites lapa, ko neviens nav prasījis.

Parametri

statusEmailStatus | EmailStatus[]
Viens statuss vai vairāki (`queued`, `scheduled`, `sending`, `sent`, `partial`, `cancelled`, `failed`), sakrītot ar jebkuru no dotajiem. SDK masīvu sūta kā vienu ar komatiem atdalītu vērtību, jo serveris dala pēc komatiem; vērtība ārpus šīs kopas ir 422, kas nosauc nezināmo.
fromstring
Precīza sakritība ar sūtīšanas adresi tā, kā tā tika ierakstīta, proti, kails `addr@host` mazajiem burtiem. Rinda tiek rakstīta ar noņemtu redzamo vārdu, tāpēc adrese leņķiekavās, piemēram, `Acme <[email protected]>`, nesakrīt ne ar ko. Jūsu vērtība pirms salīdzināšanas tiek pārveidota mazajiem burtiem, un tā ir vienādība, nevis prefiksa vai domēna sakritība.
limitnumber
Rindas šajā lapā, no 1 līdz 100, pēc noklusējuma 25. Vērtība ārpus šī diapazona tiek atteikta ar 422, nevis pielāgota robežai.
cursorstring
Ziņojuma id (`msg_…`), no kura lappušot. Atslēgu kopa, nevis nobīde: rindas atnāk stingri vecākas par šī ziņojuma `createdAt`, tāpēc sūtījumi, kas pienāk lapas vidū, nevar izgrūst rindu jums garām. Id, kas šajā darbvietā nenosauc nevienu ziņojumu, ir 400.

Atbilde: Page<EmailResource>

itemsEmailResource[]
Viena ziņojumu lapa, jaunākie vispirms pēc `createdAt`, izcelta no API `data` aploksnes. Saraksta rindas nekad nenes pa adresēm sadalīto `recipients`. Tas ir `get` atbildē.
hasMoreboolean
Vai aiz šīs lapas filtram atbilst vēl rindas. Tiek noteikts, ielādējot par vienu rindu vairāk nekā `limit`, nevis ar otru skaitīšanas vaicājumu.
nextCursorstring | null
Id, ko padot atpakaļ kā `cursor`, un null pēdējā lapā. `iterate` un `listAll` apstājas, kad šis ir null vai `hasMore` ir false, jo lapa, kas apgalvo, ka ir vēl, bet nenosauc kursoru, cilpotu mūžīgi.
items[].object'email'
Vienmēr `'email'` šī saraksta rindā.
items[].idstring
Šī API paša id, `msg_…`. Tieši to pieņem katrs cits emails galapunkts un tieši to nosauc kursors.
items[].statusEmailStatus
Kur ziņojums ir savā dzīves ciklā. `partial` ir atsevišķs stāvoklis, nevis neveiksmes paveids: daži adresāti to ir saņēmuši, un nosūtīšanu nevar atsaukt, tāpēc atkārtot ir nepareizi.
items[].modeApiKeyMode
`live` vai `test`, ņemts no atslēgas, kas to sūtīja. Testa sūtījums tiek šeit reģistrēts un nekad netiek pārraidīts.
items[].fromstring
Adrese, ar kuru sūtījums tika autorizēts, glabāta kaila un mazajiem burtiem, tāpēc redzamais vārds, kas dots laukā `from`, joprojām aiziet tīklā, bet šeit netiek glabāts. Vienkārša virkne, nevis objekts, jo šī ir autorizētā identitāte: adrese ārpus atslēgas sūtīšanas tvēruma, ne uz tai piederoša domēna, ne tai nosaukta, tiek atteikta ar 403, nekad klusi nomainīta pret tādu, kas tvērumā ir.
items[].subjectstring | null
Temats, kā saglabāts. Null ziņojumā, kas reģistrēts bez tā.
items[].messageIdstring | null
RFC 5322 Message-ID, nevis mūsu id. Null, kamēr MIME nepastāv, un sūtīšanas pakalpojums to ceļā pārraksta, tāpēc vēlāka atteikuma vēstule vai DSN nes citu id un tiek sasaistīta pēc `items[].id`.
items[].threadIdstring | null
Pavediens, kuram šis ziņojums pieder, ja tāds tika dots vai piešķirts. Pretējā gadījumā null.
items[].transportEmailTransport | (string & {}) | null
Kā baiti aizgāja. Null līdz nosūtīšanai, un tips ir atvērts, lai transports, ko šis SDK vēl nenosauc, nebūtu lūzumu izraisoša izmaiņa: saglabātie ieraksti joprojām var nosaukt tādus, kas vairs netiek lietoti.
items[].attemptsnumber
Cik nosūtīšanas mēģinājumu ziņojumam ir bijis, 0 pirms pirmā.
items[].lastErrorstring | null
Pēdējā nosūtīšanas kļūda, rakstīta cilvēkam. Null, kamēr nekas nav neizdevies.
items[].scheduledAtstring | null
Kad ziņojumam jāaiziet, kā ISO-8601 brīdis. Null tikai tūlītējam sūtījumam bez atcelšanas loga: logs ir īsa aizkave un nekas vairāk, tāpēc `cancellableForSeconds` arī aizpilda šo lauku — rindā, kuras `status` ir `queued`, nevis `scheduled`.
items[].cancellableUntilstring | null
Brīdis, kad ziņojumam jāaiziet, ar to pašu vērtību, kas `scheduledAt`, jebkuram atliktam sūtījumam, un null tādam, kas nebija atlikts. Tas ir laikspiedols, ko rādīt, nevis pārbaude, ko veic serveris: `cancel` zaro pēc `status` un aptur ziņojumu tikai tad, kamēr tas vēl ir `queued` vai `scheduled`.
items[].sentAtstring | null
Kad tas aizgāja. Null, līdz nosūtīšana ir pabeigta, un tieši tāpēc zarot vajag pēc `status`, nevis pēc šī.
items[].tagsRecord<string, string>
Sūtījumā padotās birkas, atspoguļotas atpakaļ un nekad neinterpretētas. Vienmēr objekts (`{}`, ja neviena nav iestatīta, nekad null), un tikai atspoguļotas: šis galapunkts filtrē pēc `status` un `from`, tāpēc birka ir kaut kas nolasāms no ziņojuma, nevis veids, kā to atrast.
items[].sourceEmailSource
Kura virsma pieprasīja sūtījumu: `composer`, `api`, `mcp`, `ai` vai `queue`. `api` ir šis klients.
items[].createdAtstring
Kad tika ierakstīts sūtījuma ieraksts, kas notiek pirms nosūtīšanas. Tieši pēc šī lauka saraksts tiek kārtots un ar to salīdzina kursors.
items[].trackingEmailTrackingSummary
Iesaistes kopsavilkums, klāt tikai tādā rindā, kuras ziņojums tika izsekots, un citādi nav klāt. Tā neesamība ir atbilde uz jautājumu, vai tas tika izsekots, turpretī `openCount: 0` lasītos kā „neviens to neatvēra“.
items[].tracking.opensboolean
Vai šis ziņojums aizgāja ar pikseli. Tas, kas tika piemērots šim ziņojumam, nevis tas, ko konta iestatījums saka tagad.
items[].tracking.clicksboolean
Vai šī ziņojuma saites tika pārrakstītas. False, kad pamattekstā nebija saišu, ko pārrakstīt, jo tad nekas netika mainīts.
items[].tracking.openedboolean
Vai tika reģistrēta kaut viena ieskaitīta atvēršana, atvasināts no `openCount > 0`.
items[].tracking.clickedboolean
Vai tika reģistrēts kaut viens ieskaitīts klikšķis, atvasināts no `clickCount > 0`.
items[].tracking.openCountnumber
Atvēršanas, kuras, domājams, izraisījis cilvēks, saskaitītas pa visām ziņojuma kopijām. Skeneri un privātuma starpnieki tiek reģistrēti, bet izslēgti, un atkārtotas ielādes trīsdesmit sekunžu laikā sakļaujas vienā.
items[].tracking.clickCountnumber
Ieskaitītie klikšķi, saskaitīti pa kopijām. Dublikāti tiek atmesti katrai saitei atsevišķi, nevis katram ziņojumam, jo sekošana divām saitēm ar dažu sekunžu starpību ir divas darbības, nevis atkārtojums.
items[].tracking.firstOpenAtstring | null
Agrākā ieskaitītā atvēršana visās kopijās, un null, kamēr tādas nav. Mašīnu trāpījumi to nekad nepārbīda.
items[].translationEmailTranslationResource
Saraksta rindā nekad nav klāt: tulkojuma ieraksts glabājas saglabātajā pieprasījumā, ko saraksts apzināti neielādē. Tā neesamība šeit neko nepasaka par to, vai ziņojums tika tulkots. Vaicājiet ar `get`.