Přejít na dokumentaci
SDK

Plánování a rušení

`scheduledAt`, `emails.reschedule` a `emails.cancel`.

Odeslání později

schedule.ts
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' })

Date, okamžik podle ISO-8601 nebo doba trvání jako PT1H / P2D. Nejvýše rok dopředu, nikdy do minulosti.

Přesouvání a zastavování

reschedule.ts
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)

Zastavit lze jen zprávy ve stavu queued a scheduled; cokoli dál je conflict_error, protože část už je v něčí schránce. Zrušení už zrušené zprávy uspěje a nic nezmění.

Místo toho okno pro vzetí zpět

undo-window.ts
await openemail.emails.send({ ...message, cancellableForSeconds: 30 })

Naplánovanou zprávu lze zrušit až do chvíle, než odejde, takže obojí nelze kombinovat a server to odmítne. Tohle použijte pro okno vzetí zpět u okamžité zprávy.

Parametry: plánování

scheduledAtDate | string
Kdy odeslat, u `emails.send`: `Date`, okamžik podle ISO-8601 nebo doba trvání jako `PT1H` či `P2D`, kterou klient pro přenos převede na řetězec. Nejméně sekundu v budoucnosti a nejvýše 365 dní dopředu; překročení kterékoli meze je `validation_error` na `scheduledAt`. Přirozený jazyk se nepřijímá, protože špatně rozebrané „příští úterý“ odešle zprávu v čase, který už nelze vzít zpět.
cancellableForSecondsnumber
Okno pro vzetí zpět u OKAMŽITÉHO odeslání: celé číslo od 0 do 900, výchozí 0. Jakákoli hodnota nad 0 je odmítnuta společně se `scheduledAt`, které lze stejně zrušit až do odeslání, a zpráva takto pozdržená zůstává ve stavu `queued`, ne `scheduled`. Je to tentýž mechanismus odkladu, jen s krátkou prodlevou.
idstringpovinné
Id `msg_…` a první argument jak pro `emails.cancel`, tak pro `emails.reschedule`. Obě potřebují `emails:send`, ne vlastní scope, a obě se vyhodnocují v rámci pracovního prostoru daného klíče, takže id patřící jinému je `not_found_error` přesně tak jako id, které nikdy neexistovalo.
reschedule.scheduledAtDate | stringpovinné
Nový čas jako druhý argument `emails.reschedule`, zpracovaný podle stejných pravidel a proti témuž ročnímu oknu, a jediné, co podkladové `PATCH /emails/{id}` změní. Doba trvání se vztahuje k okamžiku, kdy ji přečte SERVER, takže opakované přeplánování dopadne o něco později, než by dopadlo to první: později, nikdy dřív.

Odpověď: EmailResource

object'email'
Vždy `email`. Obě volání odpovídají celou zprávou, ne jen potvrzením, takže se nic nemusí znovu načítat, abyste viděli, co se změnilo; `emails.send` vrací tentýž tvar plus `replayed`.
idstring
Identifikátor `msg_…`. Je stabilní po celou dobu života zprávy a je to id, které přijímá každé další volání nad ní.
statusEmailStatus
`cancelled` po zrušení a `scheduled` po přeplánování, a to i u zprávy, která byla jen `queued` za oknem pro vzetí zpět – přeplánování z ní udělá skutečný plán. Přesunout nebo zastavit lze jen zprávy ve stavu `queued` a `scheduled`; cokoli dál je `conflict_error` s kódem `email_not_cancellable`, protože část už je v něčí schránce.
scheduledAtstring | null
Okamžik v ISO, kdy má být zpráva odeslána. Nastavuje se jak u okna pro vzetí zpět, tak u odeslání se `scheduledAt`, protože jde o jeden a týž mechanismus; u prostého okamžitého odeslání je null.
cancellableUntilstring | null
Kdy zrušení přestane fungovat, což je na obou odložených cestách týž okamžik jako `scheduledAt`. Null u okamžitého odeslání, které už v době návratu volání odešlo.
sentAtstring | null
Kdy zpráva skutečně odešla. Null, dokud čeká, a u zrušené zprávy null navždy.
messageIdstring | null
Message-ID podle RFC 5322; null, dokud MIME neexistuje, takže u zprávy, se kterou tato dvě volání mohou pracovat, vždy null. Není to něco, čím se obracet na API, ani to, pod čím se vrátí pozdější bounce: odesílací služba hlavičku cestou ven přepisuje.
threadIdstring | null
Vlákno, do kterého tato zpráva patří, převzaté z požadavku a po odeslání přepsané tím, co nahlásí transport. Null, když nejde o odpověď.
transportEmailTransport | (string & {}) | null
Jak bajty odešly; null až do odeslání, tedy null u každé zprávy, kterou může vrátit zrušení nebo přeplánování. Odeslání v testovacím režimu zaznamená `test` a sjednocený typ zůstává otevřený, aby transport, který toto SDK ještě nepojmenovává, nebyl rozbíjející změnou.
attemptsnumber
Kolikrát si odesílání tento řádek nárokovalo. Zvyšuje se při nárokování, ne při úspěšném odeslání, a u všeho, co ještě čeká, je 0.
lastErrorstring | null
Poslední chyba zaznamenaná u zprávy; null, dokud nic neselhalo. Odložené odeslání, jehož úlohu se nepodařilo zařadit do fronty, se sem zapíše jako `Could not schedule: …` a přejde do `failed`, což je jediný způsob, jak naplánovaná zpráva přestane být zrušitelná, aniž by o to někdo žádal.
fromstring
Adresa, pod kterou byla zpráva autorizována k odeslání, uložená holá a malými písmeny. Ne vždy je to adresa, o kterou se žádalo (zúžený klíč, který neuvádí žádné `from`, se vyhodnotí na první adresu, kterou smí použít), a zobrazované jméno se zde zahazuje, protože filtr `from` u `emails.list` porovnává na rovnost.