SDK
Plannen en annuleren
`scheduledAt`, `emails.reschedule` en `emails.cancel`.
Later versturen
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' })Een Date, een ISO-8601-tijdstip, of een duur zoals PT1H / P2D. Tot een jaar vooruit, nooit in het verleden.
Verschuiven en stoppen
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)Alleen berichten met queued en scheduled kunnen gestopt worden; alles wat verder is is een conflict_error, omdat een deel ervan al in iemands mailbox ligt. Een al geannuleerd bericht annuleren slaagt en verandert niets.
In plaats daarvan een ongedaan-maken-venster
await openemail.emails.send({ ...message, cancellableForSeconds: 30 })Een gepland bericht is al annuleerbaar tot het weggaat, dus die twee zijn niet te combineren en de server weigert het. Gebruik deze voor een ongedaan-maken-venster op een direct bericht.
Parameters: planning
scheduledAtDate | string- Wanneer er verstuurd moet worden, op `emails.send`: een `Date`, een ISO-8601-tijdstip, of een duur zoals `PT1H` of `P2D`, die de client voor de lijn naar een string rendert. Minstens één seconde in de toekomst en hoogstens 365 dagen vooruit, waarbij beide grenzen een `validation_error` op `scheduledAt` opleveren, en natuurlijke taal wordt niet geaccepteerd, omdat "next Tuesday" verkeerd parsen een bericht verstuurt op een moment dat niet meer teruggenomen kan worden.
cancellableForSecondsnumber- Een ongedaan-maken-venster op een DIRECTE verzending: een integer van 0 tot 900, standaard 0. Elke waarde boven 0 wordt geweigerd naast `scheduledAt`, dat al annuleerbaar is tot het weggaat, en een bericht dat zo wordt vastgehouden blijft op `queued` staan in plaats van op `scheduled`. Het is hetzelfde uitstelmechanisme met een korte vertraging.
idstringverplicht- De `msg_…`-id, en het eerste argument van zowel `emails.cancel` als `emails.reschedule`. Beide hebben `emails:send` nodig in plaats van een eigen scope, en beide lossen op binnen de eigen workspace van de sleutel, dus een id die bij een andere hoort is net zo goed een `not_found_error` als een id die nooit bestaan heeft.
reschedule.scheduledAtDate | stringverplicht- De nieuwe tijd, als tweede argument van `emails.reschedule`, geparseerd volgens dezelfde regels en tegen hetzelfde venster van een jaar, en het enige dat de onderliggende `PATCH /emails/{id}` zal wijzigen. Een duur is relatief aan het moment waarop de SERVER hem leest, dus een herhaalde herplanning landt iets later dan de eerste zou hebben gedaan: later, nooit eerder.
Antwoord: EmailResource
object'email'- Altijd `email`. Beide aanroepen antwoorden met het hele bericht in plaats van met een bevestiging, dus er hoeft niets opnieuw opgehaald te worden om te zien wat er veranderd is; `emails.send` geeft deze zelfde vorm terug plus `replayed`.
idstring- Het `msg_…`-handvat. Stabiel zolang het bericht bestaat en de id die elke andere aanroep erop accepteert.
statusEmailStatus- `cancelled` na een annulering en `scheduled` na een herplanning, ook voor een bericht dat alleen `queued` stond achter een ongedaan-maken-venster, wat een herplanning tot een echte planning maakt. Alleen berichten met `queued` en `scheduled` kunnen verschoven of gestopt worden; alles wat verder is is een `conflict_error` met code `email_not_cancellable`, omdat een deel ervan al in iemands mailbox ligt.
scheduledAtstring | null- Het ISO-tijdstip waarop het bericht verzonden moet worden. Ingevuld voor een ongedaan-maken-venster net zo goed als voor een `scheduledAt`-verzending, aangezien de twee één mechanisme zijn, en null bij een gewone directe verzending.
cancellableUntilstring | null- Wanneer annuleren ophoudt te werken, en dat is hetzelfde tijdstip als `scheduledAt` op beide uitgestelde paden. Null bij een directe verzending, die al weg is tegen de tijd dat de aanroep terugkeert.
sentAtstring | null- Wanneer het bericht daadwerkelijk vertrok. Null zolang het wacht, en voor altijd null bij een geannuleerd bericht.
messageIdstring | null- De Message-ID uit RFC 5322, null tot de MIME bestaat, dus altijd null op een bericht waarop deze twee aanroepen kunnen werken. Niet iets om de API mee aan te spreken, en ook niet waarop een latere bounce terugkomt: de verzenddienst herschrijft de header onderweg naar buiten.
threadIdstring | null- De thread waar dit bericht bij hoort, overgenomen uit het verzoek en herschreven met wat het transport meldt zodra het verstuurt. Null wanneer het geen antwoord is.
transportEmailTransport | (string & {}) | null- Hoe de bytes vertrokken, en null tot de verzending, dus null op elk bericht dat een annulering of een herplanning kan teruggeven. Een verzending in testmodus legt `test` vast, en de union blijft open zodat een transport dat deze SDK nog niet noemt geen breuk is.
attemptsnumber- Hoe vaak de verzending deze rij heeft geclaimd. Hij wordt opgehoogd door de claim en niet door een geslaagde verzending, en staat op 0 voor alles dat nog wacht.
lastErrorstring | null- De laatste fout die tegen het bericht is vastgelegd, null zolang er niets is misgegaan. Een uitgestelde verzending waarvan de job niet in de wachtrij gezet kon worden wordt hier geschreven als `Could not schedule: …` en naar `failed` verplaatst, wat de enige manier is waarop een gepland bericht ophoudt annuleerbaar te zijn zonder dat iemand erom vroeg.
fromstring- Het adres waaronder het bericht geautoriseerd was om uit te gaan, kaal en in kleine letters opgeslagen. Niet altijd het adres waarom gevraagd werd (een versmalde sleutel die geen `from` noemt komt uit op het eerste adres dat hij mag gebruiken), en een eventuele weergavenaam valt hier weg, omdat het `from`-filter van `emails.list` op gelijkheid vergelijkt.