Kalo te dokumentacioni
PHP

Planifikimi dhe anulimi

`scheduledAt`, `emails->reschedule`, `emails->update` dhe `emails->cancel`.

Dërgimi më vonë

schedule.php
$message = [    'from' => '[email protected]',    'to' => '[email protected]',    'subject' => 'Your September invoice',    'text' => 'Invoice attached.',]; $client->emails->send([...$message, 'scheduledAt' => 'PT1H']);$client->emails->send([...$message, 'scheduledAt' => new \DateTimeImmutable('2027-01-01 09:00', new \DateTimeZone('UTC'))]);$client->emails->send([...$message, 'scheduledAt' => '2027-01-01T09:00:00.000Z']);

Një DateTimeInterface, një çast ISO 8601 si string, ose një kohëzgjatje si PT1H ose P2D. Deri në një vit përpara, kurrë në të kaluarën. Shpërndarja e një mesazhi që e ndërtuat më parë në një array të ri me scheduledAt pranë tij e shton fushën dhe e lë origjinalin të paprekur.

Një DateTimeInterface dërgohet si çast në UTC, në cilëndo zonë kohore të jetë krijuar, ndaj ora 09:00 në Europe/London niset si çasti që emërton. Një string date pa orë, si 2027-01-01, lexohet si mesnatë UTC e asaj dite, ndaj jepni një çast kur ora ka rëndësi.

Zhvendosja dhe ndalimi

reschedule.php
$message = [    'from' => '[email protected]',    'to' => '[email protected]',    'subject' => 'Your September invoice',    'text' => 'Invoice attached.',]; $queued = $client->emails->send([...$message, 'scheduledAt' => 'PT1H']); $client->emails->reschedule($queued['id'], new \DateTimeImmutable('+1 day'));$client->emails->cancel($queued['id']);

Mund të ndalen vetëm mesazhet queued dhe scheduled. Çdo gjë më përpara hedh një ConflictException, 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ë.

Për të gjetur çfarë pret të niset brenda një dritareje kohore, listoni me status: ['scheduled', 'queued'] dhe me scheduledFrom: e scheduledTo:, ashtu siç bën kalendari i aplikacionit.

Ndryshimi para se të niset

emails->update ndryshon një mesazh që nuk është nisur ende: kur niset, me scheduledAt; çfarë thotë, me subject, html dhe text; me cilën adresë del, me from; dhe kujt i shkon, me to, cc dhe bcc. Dërgoni cilatdo prej tyre bashkë, dhe një fushë që e lini jashtë e ruan vlerën e saj. Një listë marrësish e zëvendëson plotësisht atë të ruajtur. Kjo është ajo që bën redaktimi i një mesazhi të planifikuar në kalendarin e aplikacionit.

update.php
$updated = $client->emails->update('msg_3f9a1c07d2b84e6a9c5b1f20', [    'subject' => 'Your September invoice, corrected',    'to' => ['[email protected]', '[email protected]'],    'scheduledAt' => new \DateTimeImmutable('2026-10-05 08:00', new \DateTimeZone('UTC')),]); echo $updated['status'], ' ', $updated['subject'], ' ', $updated['scheduledAt'], PHP_EOL;

from kontrollohet njësoj si në një dërgim, ndaj duhet të jetë një adresë në emër të së cilës çelësi mund të dërgojë. Një mesazh i përkthyer kur u pranua e ruan tekstin e miratuar, ndaj një subject, html ose text i ri për të jep një 409 translation_locked, dhe një mesazh që u enkriptua para se të planifikohej e ruan tekstin dhe marrësit e vet. Në vend të kësaj, anulojini ato dhe dërgojini sërish.

Një dritare anulimi në vend të saj

undo_window.php
$message = [    'from' => '[email protected]',    'to' => '[email protected]',    'subject' => 'Your September invoice',    'text' => 'Invoice attached.',]; $held = $client->emails->send([...$message, 'cancellableForSeconds' => 30]); echo $held['status'], ' ', $held['cancellableUntil'], PHP_EOL;

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

scheduledAtDateTimeInterface or string
Kur të dërgohet, te `emails->send`: një `DateTimeInterface`, një çast ISO 8601 si string, ose një kohëzgjatje si `PT1H` ose `P2D`. Një `DateTimeInterface` dërgohet si çast UTC dhe një string ashtu siç është, ndërsa një string date pa orë do të thotë mesnatë UTC. Të paktën një sekondë në të ardhmen dhe më së shumti 365 ditë përpara, ku shkelja e secilit kufi jep një `validation_error` te `scheduledAt`. Gjuha natyrore nuk pranohet, sepse analizimi i gabuar i “të martën e ardhshme” e dërgon një mesazh në një kohë që nuk mund të kthehet pas.
cancellableForSecondsint
Një dritare për anulimin e dërgimit te një dërgim i MENJËHERSHËM: një int nga 0 deri në 900, me 0 si parazgjedhje. Çdo vlerë mbi 0 refuzohet bashkë me `scheduledAt`, i cili është tashmë i anulueshëm derisa të niset, dhe një mesazh i mbajtur në këtë mënyrë qëndron në `queued` dhe jo në `scheduled`. Është i njëjti mekanizëm shtyrjeje me një vonesë të shkurtër.
$idstringe detyrueshme
Id-ja `msg_` dhe argumenti i parë i `emails->cancel`, `emails->reschedule` dhe `emails->update`. Ato kërkojnë `emails:send` dhe jo një fushë të tyren, dhe e kërkojnë id-në brenda hapësirës së punës së vetë çelësit, ndaj një id që i përket një hapësire tjetër jep një `not_found_error` njësoj si një id që nuk ka ekzistuar kurrë.
$scheduledAtDateTimeInterface or stringe detyrueshme
Koha e re, si argumenti i dytë i `emails->reschedule`, e lexuar me të njëjtat rregulla dhe brenda së njëjtës dritare një-vjeçare. Është e vetmja gjë që ndryshon `reschedule`, dhe klienti nuk dërgon asgjë tjetër. Një kohëzgjatje është relative ndaj çastit kur e lexon SERVERI, ndaj një riplanifikim i riprovuar bie pak më vonë se sa do të binte i pari: më vonë, kurrë më herët.
apiKeystring
Argument me emër në cilëndo nga tri thirrjet. Vepron me këtë çelës në vend të atij të klientit.

Përgjigje

cancel, reschedule dhe update kthejnë secili gjithë mesazhin si një array me çelësa sipas emrave camelCase të API-së.

objectstring
Gjithmonë `email`. Këto thirrje përgjigjen me gjithë mesazhin dhe jo me një konfirmim, ndaj nuk duhet marrë sërish asgjë për të parë çfarë ndryshoi. `emails->send` kthen të njëjtën formë plus `replayed`.
idstring
Doreza `msg_`. E qëndrueshme gjatë gjithë jetës së mesazhit dhe id-ja që merr çdo thirrje tjetër për të.
statusstring
`cancelled` pas një anulimi dhe `scheduled` pas një riplanifikimi, edhe për një mesazh që ishte vetëm `queued` pas një dritareje anulimi, të cilin riplanifikimi e kthen në një planifikim të vërtetë. Mund të zhvendosen ose të ndalen vetëm mesazhet `queued` dhe `scheduled`. Çdo gjë më përpara hedh një `ConflictException` me `errorCode` `email_not_cancellable`, sepse një pjesë e tij është tashmë në kutinë postare të dikujt.
scheduledAtstring or null
Çasti ISO 8601 kur mesazhi duhet të niset. Vendoset si për një dritare anulimi, ashtu edhe për një dërgim me `scheduledAt`, sepse të dyja janë një mekanizëm i vetëm, dhe është null te një dërgim i thjeshtë i menjëhershëm.
cancellableUntilstring or null
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 ikur tashmë kur kthehet thirrja.
sentAtstring or null
Kur u nis vërtet mesazhi. null sa kohë pret, dhe null përgjithmonë te një mesazh i anuluar.
messageIdstring or null
Message-ID sipas RFC 5322, null derisa të ekzistojë MIME-ja, ndaj gjithmonë null te një mesazh mbi të cilin mund të veprojnë këto thirrje. Nuk është diçka me të cilën i drejtoheni API-së, as ajo me të cilën kthehet një kthim i mëvonshëm: shërbimi i dërgimit e rishkruan header-in në dalje.
threadIdstring or null
Thread-i të cilit i përket ky mesazh, i marrë nga kërkesa dhe i rishkruar me atë që raporton transporti pasi dërgon. null kur nuk është përgjigje.
transportstring or null
Si u nisën bajtet, dhe null deri në nisje, ndaj null te çdo mesazh që mund të kthejë një anulim ose një riplanifikim. Një dërgim në modalitetin e testimit regjistron `test`, dhe mund të shfaqet një transport që kjo paketë ende nuk e emërton, ndaj trajtojeni një vlerë të panjohur si informacion dhe jo si gabim.
attemptsint
Sa herë e ka marrë përsipër nisja këtë rresht. Rritet me çdo marrje përsipër dhe jo me një dërgim të suksesshëm, dhe është 0 për çdo gjë që pret ende.
lastErrorstring or null
Dështimi i fundit i regjistruar për mesazhin, null sa kohë që asgjë nuk ka dështuar. Një dërgim i shtyrë, puna e të cilit nuk mund të futej në radhë, shkruhet këtu si `Could not schedule: …` dhe kalon në `failed`, që është mënyra e vetme si një mesazh i planifikuar pushon së qeni i anulueshëm pa e kërkuar askush.
fromstring
Adresa me të cilën mesazhi u autorizua të dilte: `from` që u dërgua, e ruajtur e zhveshur dhe me shkronja të vogla. Çdo emër shfaqjeje hiqet këtu, sepse filtri `from:` i `emails->list` krahason sipas barazisë.