Kalo te dokumentacioni
Python

Planifikimi dhe anulimi

`scheduledAt`, `emails.reschedule` dhe `emails.cancel`.

Dërgimi më vonë

schedule.py
from datetime import datetime, timezone from openemail import openemailfrom openemail.types import EmailSend message: EmailSend = {'from': sender, 'to': recipient, 'subject': subject, 'text': text} openemail.emails.send({**message, 'scheduledAt': 'PT1H'})openemail.emails.send({**message, 'scheduledAt': datetime(2027, 1, 1, 9, 0, tzinfo=timezone.utc)})openemail.emails.send({**message, 'scheduledAt': '2027-01-01T09:00:00.000Z'})

Një datetime, një çast ISO-8601, ose një kohëzgjatje si PT1H / P2D. Deri në një vit larg, kurrë në të shkuarën.

Një datetime dërgohet në UTC, dhe një naiv lexohet fillimisht si ora vendore e kësaj makine, ashtu siç e lexon astimezone, ndaj jepni një me zonë kohore kur zona ka rëndësi. Një timedelta nuk pranohet: shtojeni te datetime.now(timezone.utc), ose dërgoni një kohëzgjatje si PT1H.

Zhvendosja dhe ndalimi

reschedule.py
from datetime import datetime, timedelta, timezone from openemail import openemailfrom openemail.types import EmailSend message: EmailSend = {'from': sender, 'to': recipient, 'subject': subject, 'text': text} queued = openemail.emails.send({**message, 'scheduledAt': 'PT1H'}) openemail.emails.reschedule(queued['id'], datetime.now(timezone.utc) + timedelta(days=1))openemail.emails.cancel(queued['id'])

Vetëm mesazhet queued dhe scheduled mund të ndalen; çdo gjë më tej është një conflict_error, sepse një pjesë e tij është tashmë në kutinë postare të dikujt. Anulimi i një mesazhi tashmë të anuluar ka sukses dhe nuk ndryshon asgjë.

Një dritare anulimi në vend të saj

undo_window.py
from openemail import openemailfrom openemail.types import EmailSend message: EmailSend = {'from': sender, 'to': recipient, 'subject': subject, 'text': text} openemail.emails.send({**message, 'cancellableForSeconds': 30})

Një mesazh i planifikuar është tashmë i anulueshëm derisa të niset, pra të dyja nuk mund të kombinohen dhe serveri e refuzon. Përdoreni këtë për një dritare anulimi te një mesazh i menjëhershëm.

Parametrat: planifikimi

scheduledAtdatetime | str
Kur të dërgohet, te `emails.send`: një `datetime`, një çast ISO-8601, ose një kohëzgjatje si `PT1H` ose `P2D`, të cilën klienti e kthen në string për rrjetin. Të paktën një sekondë në të ardhmen dhe më së shumti 365 ditë larg, me secilin kufi një `validation_error` mbi `scheduledAt`, kurse gjuha e natyrshme nuk pranohet, sepse interpretimi i gabuar i "të martën tjetër" e dërgon mesazhin në një kohë që nuk mund të merret mbrapsht.
cancellableForSecondsint
Një dritare anulimi te një dërgim i MENJËHERSHËM: një integer nga 0 deri në 900, me parazgjedhje 0. Çdo vlerë mbi 0 refuzohet së bashku me `scheduledAt`, i cili është tashmë i anulueshëm derisa të niset, dhe një mesazh i mbajtur kështu rri te `queued` dhe jo te `scheduled`. Është i njëjti mekanizëm shtyrjeje me një vonesë të shkurtër.
idstre detyrueshme
Id-ja `msg_…`, dhe argumenti i parë si te `emails.cancel` ashtu edhe te `emails.reschedule`. Të dyjave u duhet `emails:send` dhe jo një scope i tyrin, dhe të dyja zgjidhen brenda hapësirës së punës së vetë çelësit, kështu që një id që i përket një tjetre është një `not_found_error` pikërisht si një id që nuk ka ekzistuar kurrë.
scheduled_atdatetime | stre detyrueshme
Koha e re, si argumenti i dytë i `emails.reschedule`, e interpretuar me të njëjtat rregulla dhe përballë të njëjtës dritare njëvjeçare, dhe e vetmja gjë që do të ndryshojë `PATCH /emails/{id}` në thelb. Një kohëzgjatje është relative ndaj çastit kur e lexon SERVERI, pra një riplanifikim i riprovuar bie pak më vonë nga sa do të binte i pari: më vonë, kurrë më herët.

Përgjigjja: EmailResource

objectLiteral['email']
Gjithmonë `email`. Të dyja thirrjet përgjigjen me të gjithë mesazhin dhe jo me një konfirmim, kështu që nuk duhet të merret asgjë përsëri për të parë se ç'ndryshoi; `emails.send` kthen të njëjtën formë plus `replayed`.
idstr
Identifikuesi `msg_…`. I qëndrueshëm për gjithë jetën e mesazhit dhe id-ja që merr çdo thirrje tjetër mbi të.
statusEmailStatus
`cancelled` pas një anulimi dhe `scheduled` pas një riplanifikimi, përfshirë një mesazh që ishte vetëm `queued` pas një dritareje anulimi, të cilin një riplanifikim e kthen në një planifikim të vërtetë. Vetëm mesazhet `queued` dhe `scheduled` mund të zhvendosen ose të ndalen; çdo gjë më tej është një `conflict_error` me kodin `email_not_cancellable`, sepse një pjesë e tij është tashmë në kutinë postare të dikujt.
scheduledAtstr | None
Çasti ISO kur mesazhi duhet të niset. I caktuar si për një dritare anulimi ashtu edhe për një dërgim me `scheduledAt`, meqë të dyja janë një mekanizëm i vetëm, dhe null te një dërgim i thjeshtë i menjëhershëm.
cancellableUntilstr | None
Kur anulimi pushon së funksionuari, që është i njëjti çast si `scheduledAt` në të dyja rrugët e shtyra. Null te një dërgim i menjëhershëm, i cili ka shkuar tashmë kur kthehet thirrja.
sentAtstr | None
Kur u nis vërtet mesazhi. Null ndërsa pret, dhe null përgjithmonë te një i anuluar.
messageIdstr | None
Message-ID sipas RFC 5322, null derisa të ekzistojë MIME-i, pra gjithmonë null te një mesazh mbi të cilin këto dy thirrje mund të veprojnë. Jo diçka me të cilën t'i drejtoheni API-së, dhe as ajo me të cilën kthehet një bounce i mëvonshëm: shërbimi dërgues e rishkruan header-in në dalje.
threadIdstr | None
Thread-i të cilit i përket ky mesazh, marrë nga kërkesa dhe i rishkruar me atë që raporton transporti sapo dërgon. Null kur nuk është përgjigje.
transportEmailTransport | str | None
Si u nisën bajtet, dhe null deri te nisja, pra null te çdo mesazh që mund të kthejë një anulim ose një riplanifikim. Një dërgim në mënyrën test regjistron `test`, dhe bashkimi mbetet i hapur, kështu që një transport që kjo SDK nuk e emërton ende nuk është një ndryshim prishës.
attemptsint
Sa herë e ka marrë nisja këtë rresht në dorë. Rritet nga marrja në dorë dhe jo nga një dërgim i suksesshëm, dhe është 0 për çdo gjë që pret ende.
lastErrorstr | None
Dështimi i fundit i regjistruar për mesazhin, null përderisa nuk ka dështuar asgjë. Një dërgim i shtyrë, puna e të cilit nuk mund të vihej në radhë, shkruhet këtu si `Could not schedule: …` dhe kalon te `failed`, që është e vetmja mënyrë se si një mesazh i planifikuar pushon së qeni i anulueshëm pa e kërkuar askush.
fromstr
Adresa me të cilën mesazhi u autorizua të dilte: `from` që u dërgua, e ruajtur e thjeshtë dhe me shkronja të vogla. Çdo emër shfaqjeje hiqet këtu, sepse filtri `from_` i `emails.list` krahason mbi barazi.

Referencë