Uzskaitīt un iegūt
`emails.list`, `emails.listAll`, `emails.iterate`, `emails.get` un `emails.listEvents`.
emails.list
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 }) : nullLapa 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
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
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`.