Kalo te dokumentacioni
CLI

Kontaktet, audiencat dhe transmetimet

Çdo komandë për librin e adresave, audiencat, transmetimet dhe listën e ndalimeve, me shembuj praktikë.

Si lidhen me njëra-tjetrën

Katër hapësira emrash mbulojnë njerëzit të cilëve u shkruani. Kontaktet janë libri i adresave i hapësirës së punës, audiencat janë lista kontaktesh me emër, një transmetim dërgon një mesazh te të gjithë në disa audienca, dhe lista e ndalimeve mban adresat te të cilat hapësira e punës nuk do të dërgojë. Çdo komandë thërret një metodë të SDK-së, ndaj faqet e SDK-së i përshkruajnë të njëjtat thirrje më në thellësi.

  • Një kontakt nuk ka id. Adresa e tij është çelësi që merr çdo komandë contacts, e shkurtuar nga hapësirat dhe me shkronja të vogla, ndaj [email protected] dhe [email protected] janë një kontakt i vetëm. Një audiencë ka një id aud_, një transmetim një id brd_, dhe një ndalim id-në që shtyp suppressions list.
  • Çdo kontakt ndodhet në audiencën e parazgjedhur për sa kohë ekziston. Ajo audiencë nuk mund të fshihet, zbrazet ose hollohet, dhe builtin në të është default.
  • Libri i adresave i përket hapësirës së punës, ndaj çdo anëtar dhe çdo çelës lexon dhe shkruan të njëjtin libër.
  • Çdo hapësirë emrash i përgjigjet edhe njëjësit të vet, si te openemail contact get, dhe pseudonimet e zakonshme funksionojnë: ls, show, new, edit dhe rm. Te suppressions, foljet e së cilës janë add dhe remove, new çon te add dhe rm te remove.

openemail <namespace> <verb> --help tregon çdo flamur me llojin e tij, fushëveprimet, endpoint-in dhe çfarë kthen komanda. Shtoni --json për të njëjtën faqe si të dhëna.

Kontaktet

Libri i adresave i hapësirës së punës: njerëzit të cilëve u ka shkruar një anëtar nga kompozuesi i aplikacionit, plus kushdo i ruajtur me dorë. Posta që mbërrin nuk shton askënd, as një dërgim përmes API-t ose CLI-së.

KomandaÇfarë bën
openemail contacts listNjë faqe e kontakteve të ruajtura, ata që u është dërguar postë më së fundi të parët. --source mban kontaktet manual ose auto, dhe --q kërkon në emra dhe adresa
openemail contacts get <email>Një kontakt, me çdo audiencë në të cilën ndodhet
openemail contacts create --email <value>Ruani një kontakt të ri, me --name, --notes dhe --audience-ids. Një adresë që është tashmë në libër refuzohet me 409 contact_exists
openemail contacts update <email>Ndryshoni --name ose --notes, ku null pastron njërën prej tyre. Vetë adresa nuk mund të ndryshojë
openemail contacts delete <email>Fshini kontaktin me shënimet, foton dhe anëtarësimet e tij, dhe fshiheni adresën që kompozuesi të mos e regjistrojë sërish
openemail contacts set-audiences <email> --audience-ids <a,b>Bëjini audiencat në të cilat ndodhet kontakti saktësisht këtë listë. Audienca e parazgjedhur mbahet gjithmonë
openemail contacts list-peopleTë gjithë në faqen Kontaktet: kontaktet e ruajtura dhe, me threads:read, çdo adresë e parë në postë, me numrin e bisedave. --sort, --q, --email dhe --blocked e ngushtojnë
openemail contacts save <email>Ruani një adresë, mbani një të regjistruar nga një dërgim, ose rikthoni një të fshirë. Kurrë gabim, cilado qoftë gjendja e adresës
openemail contacts delete-many <emails...>Fshini dhe fshihni nga 1 deri në 200 adresa me një thirrje
openemail contacts set-photo <email> <data>Ngarkoni foton nga një skedar, ose nga stdin me -: PNG, JPEG, WebP ose GIF deri në 5 MB
openemail contacts remove-photo <email>Hiqni foton dhe fshini imazhin e ruajtur
openemail contacts block <email>Vendoseni adresën në listën e bllokimit të hapësirës së punës, që posta prej saj të refuzohet. Një etiketë plus hiqet
openemail contacts unblock <email>Hiqni çdo rregull të listës së bllokimit që e bllokon adresën, përfshirë një rregull për gjithë domenin
openemail contacts list-threads <email>Bisedat ku adresa shkroi ose iu shkrua, në çdo dosje. --q kërkon brenda tyre
openemail contacts activity <email>Posta e marrë nga adresa dhe e dërguar te ajo gjatë një dritareje kohore, 90 ditë përveç nëse --minutes thotë ndryshe, me bisedat që presin përgjigje dhe kohën mesatare të përgjigjes në secilin drejtim

Audiencat

Lista kontaktesh me emër, deri në 100 në një hapësirë pune. Një adresë duhet të jetë kontakt para se të hyjë në një të tillë, përveçse përmes import-contacts, që i ruan adresat e reja ndërsa ecën.

KomandaÇfarë bën
openemail audiences listNjë faqe e audiencave, e parazgjedhura e para dhe të tjerat më të rejat të parat, secila me contactCount e saj
openemail audiences growthSi u rritën audiencat gjatë një dritareje kohore, 30 ditë përveç nëse --days ose --minutes thotë ndryshe: hyrjet dhe çregjistrimet për çdo interval, dhe totalet
openemail audiences get <id>Një audiencë, me një contactCount të freskët
openemail audiences create --name <value>Krijoni një audiencë bosh, me një --description opsionale. Emrat nuk janë unikë
openemail audiences update <id>Ndryshoni --name ose --description. Anëtarësia nuk preket
openemail audiences delete <id>Fshini audiencën dhe mbani kontaktet e saj. Audienca e parazgjedhur nuk mund të fshihet
openemail audiences empty <id>Nxirrni çdo kontakt dhe mbani audiencën, me id-në, emrin dhe përshkrimin e saj
openemail audiences list-contacts <id>Një faqe e kontakteve në audiencë, me kohën kur hyri secili dhe nëse u çregjistrua. --sort, --q, --source dhe --statuses e ngushtojnë
openemail audiences add-contact <id> --email <value>Vendosni një kontakt ekzistues në audiencë. Shtimi i dikujt që është tashmë aty nuk ndryshon asgjë
openemail audiences remove-contact <id> <email>Nxirrni një kontakt. Një kontakt që nuk është në audiencë jep 404
openemail audiences add-contacts <id> --emails <a,b>Vendosni deri në 200 kontakte ekzistuese, dhe raportoni te missing adresat që nuk janë kontakte
openemail audiences remove-contacts <id> --emails <a,b>Nxirrni deri në 200 kontakte, dhe raportoni ata që nuk ishin në të
openemail audiences import-contacts <id> --contacts <json|@file|->Importoni deri në 500 rreshta { email, name }, duke ruajtur adresat që nuk janë ende kontakte

Transmetimet

Një mesazh për të gjithë në deri në 10 audienca, i dërguar si kopje më vete për çdo person, me fushat e bashkimit të plotësuara dhe një lidhje çregjistrimi. Çdo kopje është një email i zakonshëm me id-në e vet msg_, ngjarjet dhe webhook-ët e vet.

KomandaÇfarë bën
openemail broadcasts preview --audience-ids <a,b>Numëroni kë do të arrinte një transmetim te këto audienca, dhe kë do të anashkalonte si të çregjistruar ose të ndaluar. Nuk dërgon asgjë
openemail broadcasts send --audience-ids <a,b> --from <value>Dërgoni me --subject dhe --html ose --text, ose me një --template të ruajtur, tani ose në --scheduled-at
openemail broadcasts listNjë faqe transmetimesh, më të rejat të parat, me numra të drejtpërdrejtë. --audience-id mban ato që u dërguan te ajo audiencë
openemail broadcasts get <id>Një transmetim, me statusin dhe numrat e drejtpërdrejtë: komanda për ta kontrolluar vazhdimisht ndërsa dërgon
openemail broadcasts stats <id>Totalet e të dorëzuarave, të kthyerave, të hapurave, të klikuarave dhe të çregjistruarave, dhe një seri për çdo interval --grain, një orë përveç nëse thoni ndryshe
openemail broadcasts list-recipients <id>Te kush shkoi çdo kopje dhe çfarë ndodhi me të. --filter mban një grup, si bounced ose not_opened
openemail broadcasts get-recipient <id> <email-id>Kopja e një personi, me subjektin, HTML-në dhe tekstin saktësisht siç i mori
openemail broadcasts cancel <id>Ndaloni një transmetim që është i planifikuar, në radhë ose ende duke u dërguar. Kopjet që janë nisur nuk mund të tërhiqen

Ndalimet

Adresat te të cilat kjo hapësirë pune nuk do të dërgojë: kthimet e forta dhe ankesat, të regjistruara ndërsa ndodhin, dhe çdo adresë që shtoni me dorë. Një dërgim te njëra prej tyre refuzohet për atë marrës para se të niset ndonjë gjë.

KomandaÇfarë bën
openemail suppressions listNjë faqe e listës, më të rejat të parat. --reason mban bounce, complaint ose manual, dhe --q kërkon
openemail suppressions get <id>Një rresht: adresa, arsyeja, detaji që mbarti kthimi ose ankesa, dhe nëse mund të hiqet
openemail suppressions add --email <value>Ndaloni dërgimin te një adresë. Shtimi i një adrese që është tashmë aty kthen rreshtin që ajo ka
openemail suppressions remove <id>Lejoni sërish postën te adresa. Një kthim i fortë nuk mund të hiqet

Ndalimet dhe lista e bllokimit janë lista të ndryshme. suppressions add ndal postën që del drejt një adrese, dhe contacts block refuzon postën që vjen prej saj.

Fushëveprimet

Shumica e komandave kanë nevojë për fushëveprimin e leximit ose të shkrimit të hapësirës së tyre të emrave. Disa kanë nevojë për një tjetër, sepse lexojnë ose ndryshojnë diçka tjetër:

FushëveprimiKomandat
contacts:readcontacts list, get dhe list-people
contacts:writecontacts create, update, delete, save, delete-many, set-photo dhe remove-photo, si edhe audiences import-contacts krahas audiences:write
audiences:readaudiences list, growth, get dhe list-contacts, si edhe broadcasts preview, ndaj një çelës që nuk mund të dërgojë mund ta tregojë përsëri numrin
audiences:writeÇdo komandë tjetër audiences, dhe contacts set-audiences. contacts create --audience-ids ka nevojë për të krahas contacts:write
threads:readcontacts list-threads dhe activity, si edhe adresat e para në postë te list-people
settings:readsuppressions list dhe get
settings:writesuppressions add dhe remove, si edhe contacts block dhe unblock
emails:readbroadcasts list, get, stats, list-recipients dhe get-recipient
emails:sendbroadcasts send, që ka nevojë edhe për audiences:read, dhe broadcasts cancel
  • Një çelës i kufizuar në adresa ose domene të caktuara lexon dhe shkruan të njëjtin libër adresash si çdo çelës tjetër. Sheh vetëm transmetimet e dërguara nga një adresë ose domen që mban, merr vetëm kontaktet e ruajtura nga list-people, dhe refuzohet me 422 capability_unsupported nga contacts list-threads, activity, block dhe unblock, si edhe nga suppressions add dhe remove.
  • Një hyrje me shfletues nga një anëtar që arrin vetëm disa adresa refuzohet me 422 capability_unsupported në çdo komandë contacts, audiences dhe broadcasts. suppressions add refuzon një hyrje me shfletues nga kushdo përveç pronarit të hapësirës së punës.

Shembuj praktikë

Ndërtoni një audiencë nga një skedar, pastaj numëroni kë do të arrinte një transmetim te ajo. import-contacts ruan adresat që nuk janë ende kontakte, dhe ekzekutimi sërish nuk krijon dhe nuk shton asgjë dy herë.

contacts.json
[  { "email": "[email protected]", "name": "Ada Lovelace" },  { "email": "[email protected]", "name": "Grace Hopper" },  { "email": "[email protected]" }]
Ndërtoni audiencën dhe numërojeni
AUDIENCE=$(openemail audiences create --name 'Product updates' --json | jq -r .id)openemail audiences import-contacts "$AUDIENCE" --contacts @contacts.jsonopenemail broadcasts preview --audience-ids "$AUDIENCE"

Kontrolloni një transmetim me --dry-run, që shtyp kërkesën dhe nuk dërgon asgjë, pastaj dërgojeni. Transmetimi krijohet menjëherë dhe dërgohet në sfond, ndaj kontrolloni vazhdimisht me get për ta ndjekur. Ky trup nuk e vendos {{unsubscribeUrl}}, ndaj çdo kopje merr një fund faqeje çregjistrimi me një rresht.

broadcast.json
{  "audienceIds": ["aud_4c1b8e2a7d9f05c36b4e8a71"],  "from": "Acme <[email protected]>",  "subject": "{{firstName|Hello}}, the September release is out",  "html": "<p>Hi {{firstName|there}},</p><p>Here is what changed this month.</p>",  "scheduledAt": "2026-10-01T09:00:00Z"}
Kontrolloni transmetimin, pastaj dërgojeni
openemail broadcasts send --data @broadcast.json --dry-runBROADCAST=$(openemail broadcasts send --data @broadcast.json --yes --json | jq -r .id)openemail broadcasts get "$BROADCAST"openemail broadcasts stats "$BROADCAST" --grain day

Shihni kë nuk arriti një transmetim. --ndjson shtyp një marrës për rresht, dhe --all --json një dokument me çdo faqe.

Kë nuk arriti
openemail broadcasts list-recipients brd_5a8c1e3f7b2d94a06c8e1f3b --filter bounced --ndjson | jq -r .emailopenemail broadcasts list-recipients brd_5a8c1e3f7b2d94a06c8e1f3b --filter not_opened --all --json | jq ".items | length"openemail suppressions list --reason bounce --all --max 50

Kopjoni anëtarët e regjistruar të një audience në një tjetër. jq e kthen rrjedhën në trupin që merr add-contacts, dhe --data - e lexon nga stdin. --max 200 e mban te 200 adresat që pranon një thirrje.

Kopjoni anëtarët e regjistruar
openemail audiences list-contacts aud_9f2c4b7e1a0d63d84c5f2e7b --statuses subscribed --max 200 --ndjson \  | jq -s '{ emails: map(.email) }' \  | openemail audiences add-contacts aud_1c4e7a9b2d0f36e85a7c1b4d --data -

Fshini çdo kontakt që kompozuesi regjistroi në një domen. delete-many merr deri në 200 adresa për thirrje, ndaj xargs -n 200 ndan një listë më të gjatë. Kontrolloni fillimisht grupet me --dry-run, sepse nuk ka zhbërje.

Fshini sipas domenit
openemail contacts list --source auto --all --ndjson \  | jq -r 'select(.email | endswith("@old-vendor.example")) | .email' > leaving.txtxargs -n 200 openemail contacts delete-many --dry-run < leaving.txtxargs -n 200 openemail contacts delete-many --yes < leaving.txt

Ndaloni dërgimin te një adresë, lejojeni sërish një tjetër, dhe bllokoni një dërgues. removable tregon cilat rreshta do të pranojë suppressions remove.

Ndaloni, lejoni dhe bllokoni
openemail suppressions add --email [email protected]openemail suppressions list --q [email protected] --json | jq -r '.items[] | select(.removable) | .id'openemail suppressions remove 7b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e --yesopenemail contacts block [email protected]

Konfirmimet dhe kodet e verifikimit

Këto komanda kërkojnë konfirmim në terminal para se të ekzekutohen:

Hapësira e emraveKërkon konfirmim
contactsdelete, delete-many, remove-photo dhe unblock
audiencesdelete, empty, remove-contact dhe remove-contacts
broadcastssend dhe cancel
suppressionsremove
  • --yes konfirmon për ju. Pa mbikëqyrje, me --json ose --no-input, në CI ose pa terminal, një komandë që do të pyeste ndalet me Refusing to run unattended. Pass --yes to confirm. dhe kodin e daljes 2.
  • --dry-run shtyp kërkesën që do të dërgonte komanda dhe del me kodin 0, pa pyetur dhe pa ndryshuar asgjë.
  • Me një hyrje me shfletues, audiences delete kërkon fillimisht një kod verifikimi, si aplikacioni web. --yes nuk e kapërcen kurrë, dhe pa mbikëqyrje komanda ndalet me kodin e daljes 4. Ekzekutoni më parë openemail verify, ose përdorni një çelës API, të cilit nuk i kërkohet kurrë.
  • audiences empty nuk kërkon kurrë kod verifikimi, ndaj kontrolloni id-në para se të jepni --yes.

Ndarja në faqe

Çdo komandë që liston lexon një faqe. Kur mbeten të tjera, jepini --cursor kursorin që shtypi, me të njëjtët filtra, ose lexojini të gjitha:

  • --all lexon çdo faqe dhe i transmeton elementet: një tabelë në terminal, dhe një objekt JSON për rresht kur dalja dërgohet në pipe ose me --ndjson.
  • --max <n> ndalet pas aq elementeve dhe nënkupton --all.
  • --json shtyp një dokument të vetëm { items, hasMore, nextCursor }, përfshirë me --all.
  • Një kursor i keqformuar ose i vjetëruar jep 400 invalid_cursor. Filloni sërish pa të.
KomandaMadhësia e faqes
openemail contacts list1 deri në 200, 50 përveç nëse --limit thotë ndryshe
openemail contacts list-people1 deri në 100, 25 përveç nëse --limit thotë ndryshe
openemail contacts list-threads1 deri në 100, 25 përveç nëse --limit thotë ndryshe
openemail audiences list1 deri në 100, 25 përveç nëse --limit thotë ndryshe
openemail audiences list-contacts1 deri në 200, 50 përveç nëse --limit thotë ndryshe
openemail broadcasts list1 deri në 100, 25 përveç nëse --limit thotë ndryshe
openemail broadcasts list-recipients1 deri në 200, 50 përveç nëse --limit thotë ndryshe
openemail suppressions list1 deri në 100, 25 përveç nëse --limit thotë ndryshe

Mirë të dihet

  • contacts create e refuzon një adresë që është tashmë në libër me 409 contact_exists, ndaj një riprovim nuk e mbishkruan kurrë një emër që dikush e ka redaktuar. contacts save nuk refuzon kurrë: e ruan, e mban ose e rikthen adresën, cilado qoftë gjendja e saj.
  • contacts delete pranon edhe një adresë që është parë vetëm në postë, gjë që e heq atë person nga list-people. Posta mbetet. Nuk ka zhbërje: ruajtja sërish e adresës nis një kontakt pa emër, pa shënime dhe pa asnjë audiencë përveç asaj të parazgjedhur.
  • Adresa është identiteti i një kontakti, ndaj contacts update nuk mund ta ndryshojë. Zhvendosja e një kontakti është një delete dhe një create.
  • contacts set-photo e lexon imazhin nga një skedar, ose nga stdin me -. Jepni --content-type, si image/jpeg: pa të imazhi mund të shkojë si application/octet-stream, të cilin serveri e refuzon me 422 invalid_image.
  • broadcasts send --scheduled-at pranon një kohë ISO 8601 si 2026-10-01T09:00:00Z, ose një kohëzgjatje ISO 8601 si PT2H ose P1D, deri në 365 ditë përpara. Vonesat e shkurtra që pranon send --at, si 2h, refuzohen këtu.
  • Fushat e bashkimit funksionojnë te --subject, --html dhe --text: {{firstName}}, {{lastName}}, {{name}}, {{email}} dhe {{unsubscribeUrl}}, secila me një vlerë rezervë pas një vije vertikale, si te {{firstName|there}}. Një trup që nuk e vendos {{unsubscribeUrl}} merr një fund faqeje çregjistrimi me një rresht. Një shabllon dërgohet ashtu siç është, ndaj vendoseni lidhjen në shabllon.
  • Një transmetim kontrollohet kundrejt dërgimeve mujore të planit para se të shkruhet ndonjë gjë, dhe çdo kopje numërohet si një dërgim. Një transmetim që kuota nuk e mbulon refuzohet me 429 send_quota_exceeded, dhe nuk lihet asgjë pas.
  • Jepini broadcasts send --idempotency-key tuajin kur një skript mund ta ekzekutojë sërish hapin. I njëjti çelës përgjigjet me transmetimin që krijoi në vend që të dërgojë një të ri.
  • Një kontakt që çregjistrohet nga një transmetim mbetet në audiencë me unsubscribedAt të caktuar, dhe transmetimet e mëvonshme te ajo audiencë e anashkalojnë. audiences list-contacts --statuses unsubscribed i liston.
  • Një kthim i fortë mbetet në listën e ndalimeve. suppressions remove e refuzon me 409 suppression_not_removable, dhe removable në çdo rresht e thotë këtë paraprakisht.

Kutia juaj hyrëse,
sipas kushteve tuaja.

Infrastrukturë emaili për biznese, AI, agjentë dhe email personal. E ndërtuar për shkallë, privatësi dhe kontroll. Gjithçka që emaili duhej ta kishte që ditën e parë.

OpenEmail

Infrastrukturë emaili për biznese, AI, agjentë dhe email personal. E ndërtuar për shkallë, privatësi dhe kontroll. Gjithçka që emaili duhej ta kishte që ditën e parë.

© 2026 OpenEmail. Të gjitha të drejtat e rezervuara.