SDK
Ütemezés és visszavonás
`scheduledAt`, `emails.reschedule` és `emails.cancel`.
Küldés később
await openemail.emails.send({ ...message, scheduledAt: 'PT1H' })await openemail.emails.send({ ...message, scheduledAt: new Date('2027-01-01T09:00:00Z') })await openemail.emails.send({ ...message, scheduledAt: '2027-01-01T09:00:00.000Z' })Egy Date, egy ISO-8601 időpont, vagy egy időtartam, például PT1H / P2D. Legfeljebb egy évre előre, a múltba soha.
Áthelyezés és leállítás
const queued = await openemail.emails.send({ ...message, scheduledAt: 'PT1H' }) await openemail.emails.reschedule(queued.id, new Date(Date.now() + 86_400_000))await openemail.emails.cancel(queued.id)Csak a queued és a scheduled üzenetek állíthatók meg; bármi, ami ennél tovább jutott, conflict_error, mert egy része már ott van valakinek a postafiókjában. A már visszavont üzenet visszavonása sikeres, és semmit nem változtat.
Inkább visszavonási ablak
await openemail.emails.send({ ...message, cancellableForSeconds: 30 })Az ütemezett üzenet a küldésig amúgy is visszavonható, ezért a kettő nem kombinálható, és a kiszolgáló elutasítja. Ezt akkor használd, ha azonnali üzenethez akarsz visszavonási ablakot.
Paraméterek: ütemezés
scheduledAtDate | string- Mikor küldjük, az `emails.send` hívásban: egy `Date`, egy ISO-8601 időpont, vagy egy időtartam, például `PT1H` vagy `P2D`, amelyet a kliens sztringgé alakít a hálózatra. Legalább egy másodperccel a jövőben és legfeljebb 365 nappal előre, mindkét határon `validation_error` a `scheduledAt` mezőn, és természetes nyelvet nem fogadunk el, mert a „jövő kedd” félreértelmezése olyan időpontban küldene el egy üzenetet, amely már nem vonható vissza.
cancellableForSecondsnumber- Visszavonási ablak AZONNALI küldésen: 0 és 900 közötti egész szám, alapértelmezés szerint 0. A 0-nál nagyobb értéket a `scheduledAt` mellett elutasítjuk, amely a küldésig amúgy is visszavonható, és az így visszatartott üzenet `queued` állapotban áll, nem `scheduled` állapotban. Ugyanaz a halasztási mechanizmus, rövid késleltetéssel.
idstringkötelező- A `msg_…` azonosító, egyben az `emails.cancel` és az `emails.reschedule` első argumentuma. Mindkettőhöz `emails:send` kell, nem saját hatókör, és mindkettő a kulcs saját munkaterületén belül oldja fel az azonosítót, így a másik munkaterülethez tartozó azonosító pontosan úgy `not_found_error`, mint egy soha nem létezett azonosító.
reschedule.scheduledAtDate | stringkötelező- Az új időpont, az `emails.reschedule` második argumentumaként, ugyanazokkal a szabályokkal és ugyanazzal az egyéves ablakkal elemezve, és az egyetlen dolog, amit a mögöttes `PATCH /emails/{id}` megváltoztat. Az időtartam ahhoz az időponthoz képest relatív, amikor a KISZOLGÁLÓ beolvassa, így az újrapróbált átütemezés kicsit később landol, mint az első tette volna: később, soha nem korábban.
Válasz: EmailResource
object'email'- Mindig `email`. Mindkét hívás a teljes üzenettel válaszol, nem visszaigazolással, így semmit nem kell újra lekérni ahhoz, hogy lásd, mi változott; az `emails.send` ugyanezt az alakot adja vissza, plusz a `replayed` mezőt.
idstring- A `msg_…` azonosító. Az üzenet élettartama alatt állandó, és minden rá vonatkozó hívás ezt várja.
statusEmailStatus- Visszavonás után `cancelled`, átütemezés után `scheduled` – annál az üzenetnél is, amely csak `queued` volt egy visszavonási ablak mögött, és amelyet az átütemezés valódi ütemezéssé alakít. Csak a `queued` és a `scheduled` üzenetek helyezhetők át vagy állíthatók meg; bármi, ami ennél tovább jutott, `conflict_error` az `email_not_cancellable` kóddal, mert egy része már ott van valakinek a postafiókjában.
scheduledAtstring | null- Az az ISO-időpont, amikor az üzenet kiküldése esedékes. Visszavonási ablaknál éppúgy be van állítva, mint `scheduledAt` küldésnél, mivel a kettő egy mechanizmus, és null a sima azonnali küldésen.
cancellableUntilstring | null- Mikor szűnik meg működni a visszavonás, ami mindkét halasztott úton ugyanaz az időpont, mint a `scheduledAt`. Null az azonnali küldésen, amely a hívás visszatérésekor már elment.
sentAtstring | null- Mikor ment el ténylegesen az üzenet. Null, amíg vár, és örökre null a visszavont üzeneten.
messageIdstring | null- Az RFC 5322 Message-ID, amely null, amíg a MIME nem létezik, tehát mindig null azon az üzeneten, amelyre ez a két hívás vonatkozhat. Nem ezzel kell megszólítani az API-t, és nem is ezen jön vissza egy későbbi visszapattanás: a küldő szolgáltatás kimenet közben átírja a fejlécet.
threadIdstring | null- A beszélgetés, amelyhez ez az üzenet tartozik, a kérésből átvéve, majd azzal felülírva, amit a szállítás a küldéskor jelent. Null, ha nem válasz.
transportEmailTransport | (string & {}) | null- Hogyan mentek ki a bájtok; a kiküldésig null, tehát null minden olyan üzeneten, amelyet egy visszavonás vagy átütemezés visszaadhat. A tesztmódú küldés `test` értéket rögzít, és az unió nyitva marad, hogy egy olyan szállítás, amelyet ez az SDK még nem nevez meg, ne jelentsen törő változást.
attemptsnumber- Hányszor foglalta le ezt a sort a kiküldés. A lefoglalás növeli, nem a sikeres küldés, és minden várakozó üzeneten 0.
lastErrorstring | null- Az üzenethez rögzített utolsó hiba, null, amíg semmi nem hibázott. Az a halasztott küldés, amelynek a feladatát nem sikerült sorba állítani, `Could not schedule: …` formában kerül ide, és `failed` állapotba, ami az egyetlen mód arra, hogy egy ütemezett üzenet bárki kérése nélkül megszűnjön visszavonható lenni.
fromstring- A cím, amellyel az üzenet kimehetett, csupaszon és kisbetűsítve tárolva. Nem mindig az a cím, amelyet kértek (az a szűkített kulcs, amely nem nevez meg `from` címet, az első használható címére oldódik fel), és a megjelenítendő nevet itt eldobjuk, mert az `emails.list` `from` szűrője egyenlőségre hasonlít.