Kalo te dokumentacioni
CLI

Bisedat, draftet dhe etiketat

Çdo komandë në hapësirat e emrave threads, drafts dhe labels, dhe si qëndrojnë ato nën inbox, read, archive dhe komandat e tjera të postës.

Përmbledhje

Komandat e postës, si inbox, read, archive dhe label add, janë shkruar për njerëz: marrin disa id bisedash njëherësh, formatojnë atë që shtypin dhe i mbajnë id-të e etiketave larg syve. Secila prej tyre ekzekuton komanda nga kjo faqe, të cilat janë metodat e SDK-së për bisedat, draftet dhe etiketat, një komandë për çdo metodë, ndaj threads.listAttachments është openemail threads list-attachments.

Përdorini këto kur ju duhet ajo që komandat e postës e lënë jashtë: një bisedë saktësisht siç e kthen API, skedarët në një mesazh, draftet, dhe krijimi, riemërtimi, ringjyrosja ose fshirja e etiketave.

  • openemail thread dhe openemail draft funksionojnë po aq mirë sa emrat në shumës. openemail labels nuk ka formë njëjës: openemail label është komanda e postës që vendos etiketa në biseda.
  • Foljet pranojnë pseudonimet e zakonshme: ls për list, show dhe view për get, new dhe add për create, edit për update, dhe rm, del dhe remove për delete.
  • Çdo flamur ndodhet te openemail <namespace> <verb> --help, si openemail threads list --help.

Bisedat

Bisedat në kutinë postare. Një id bisede si CAHk7pQ2x9LmZ4 vjen nga threads list, openemail inbox ose openemail search.

KomandaÇfarë bën
openemail threads listListoni një faqe bisedash në një dosje, më të rejat të parat. Çdo rresht është vetëm një id. --folder, --query, --label-ids, --sort, --date-from, --date-to dhe --from-contacts e ngushtojnë dhe e renditin
openemail threads get <id>Lexoni një bisedë me çdo mesazh të saj, më të vjetrat të parat, me etiketat dhe gjendjen e palexuar
openemail threads update <id>Shënoni një bisedë si të lexuar me --read ose të palexuar me --no-read, dhe vendosni ose hiqni etiketa me --add-label-ids dhe --remove-label-ids, deri në 50 secila
openemail threads trash <id>Zhvendoseni një bisedë te Koshi, jashtë inbox-it, spam-it, të shtyrave dhe arkivit me një hap. Kërkon konfirmim
openemail threads snooze <id> <wake-at>Fshiheni një bisedë deri në një çast të ardhshëm, si 2026-10-01T09:00:00Z. Shtyrja e saj sërish e zëvendëson kohën e zgjimit
openemail threads unsnooze <id>Ktheni tani një bisedë të shtyrë në inbox dhe pastroni kohën e saj të zgjimit
openemail threads list-attachments <id> <message-id>Listoni bashkëngjitjet e një mesazhi, secila me bajtet e saj në rresht si base64 te content
  • --folder ka si parazgjedhje inbox dhe krahasohet si id etikete, ndaj funksionojnë sent, archive, spam, trash, draft, snoozed, starred dhe unread, bin lexohet si trash, dhe funksionon edhe një id etikete përdoruesi si USER_RECEIPTS. Një dosje që nuk përputhet me asgjë kthen një faqe bosh, jo një gabim.
  • --query pranon sintaksën e kërkimit të aplikacionit, dhe in:anywhere kërkon në çdo dosje. --label-ids e ngushton më tej, meqë një bisedë duhet të mbartë dosjen dhe çdo id që jepni. --date-from dhe --date-to lexojnë mesazhin më të ri të çdo bisede, dhe të dy skajet përfshihen.
  • threads get përfshin përgjigjet draft të padërguara midis mesazheve, të shënuara isDraft: true, dhe hap edhe një id drafti.
  • threads update kërkon --read, --no-read ose një etiketë për të shtuar ose hequr. Heqjet zbatohen para shtimeve. Një id etikete që nuk emërton asnjë etiketë refuzohet me label_not_found dhe asgjë në bisedë nuk ndryshon, ndaj krijojeni etiketën më parë. TRASH, SNOOZED dhe DRAFT refuzohen me label_not_directly_settable: përdorni threads trash dhe threads snooze.
  • threads trash nuk fshin asgjë, dhe biseda mbetet e lexueshme me threads get, por asnjë komandë nuk e nxjerr një bisedë nga Koshi. Hedhja në Kosh e një bisede të shtyrë anulon edhe zgjimin e saj.
  • threads snooze e dërgon <wake-at> ashtu siç është, ndaj jepini një çast të ardhshëm ISO 8601 me Z ose një zhvendosje orare, sepse një kohë pa to lexohet në zonën orare të serverit. Një vonesë si 3h refuzohet si e pavlefshme. openemail snooze --until 3h pranon një vonesë. Bisedat zgjohen në një kontroll që bëhet çdo orë, deri në rreth një orë vonë, dhe gjithmonë në inbox.
  • threads list-attachments e kthen çdo skedar të plotë në një përgjigje të vetme. Merreni id-në e mesazhit nga messages e threads get. content është një varg bosh kur bajtet e ruajtura nuk gjenden, ndaj kontrolloni gjatësinë e tij para se ta dekodoni.

Draftet

Mesazhe të padërguara të ruajtura në kutinë postare. Një id drafti nis me draft-.

KomandaÇfarë bën
openemail drafts listListoni një faqe draftesh, të ruajturat më së fundi të parat. Çdo rresht është vetëm një id, dhe --query kërkon në to
openemail drafts get <id>Lexoni marrësit, subjektin, trupin, dërguesin e një drafti, bisedën së cilës i përgjigjet dhe emrat e bashkëngjitjeve të tij
openemail drafts createRuani një draft të ri nga --to, --cc, --bcc, --subject, --html, --text, --from dhe --thread-id, të gjitha opsionale
openemail drafts update <id>Ndryshoni fusha në një draft të ruajtur. Një fushë që e lini jashtë ruan vlerën e saj
openemail drafts delete <id>Fshini një draft përgjithmonë. Nuk shkon te Koshi. Kërkon konfirmim
  • drafts list --query kërkon në subjekt, te dërguesi dhe në fillim të trupit, dhe nuk del kurrë nga draftet. older_than:30d dhe operatorët e tjerë të datës lexojnë kur u ruajt drafti për herë të fundit, dhe to:, cc: dhe bcc: nuk përputhen me asgjë në një draft.
  • Një draft ruhet si bisedë me etiketën DRAFT, ndaj threads get e hap dhe openemail inbox draft i liston. drafts get, update dhe delete e refuzojnë një id bisede të zakonshme me 404.
  • Një openemail drafts create pa asgjë tjetër ruan një draft bosh. Kontrollohen vetëm gjatësitë: një subjekt deri në 998 karaktere, dhe --html e --text deri në 1,000,000 secili, me --html që mbahet kur janë vendosur të dyja. Nuk ka flamur për bashkëngjitjet.
  • drafts update zëvendëson çdo fushë që dërgoni. Një listë e zëvendëson të ruajturën të tërën, ndaj --to me një adresë i heq të tjerat, dhe një përditësim e zbraz listën e bashkëngjitjeve të draftit.
  • --thread-id regjistron bisedën së cilës i përgjigjet një draft, por drafti ruhet përsëri si bisedë më vete.
  • Ekzekutimi sërish i drafts create ruan një draft të dytë, sepse nuk pranon çelës idempotence. Një emër shfaqjeje me presje brenda ndahet në dy marrës të prishur, ndaj lëreni presjen jashtë.
  • openemail send --draft <id> --to <address> dërgon një draft. Trupi vjen nga drafti, po ashtu edhe subjekti përveç nëse jepni --subject, ndërsa marrësit janë ata që emërtoni. Nuk mund të kombinohet me një trup, --template ose --translate.

Etiketat

Etiketat që mund të mbartë një bisedë. Një id etikete përdoruesi është USER_ e ndjekur nga emri me të cilin u krijua, me shkronja të mëdha, me çdo varg hapësirash të kthyer në _, ndaj Big Clients bëhet USER_BIG_CLIENTS.

KomandaÇfarë bën
openemail labels listListoni etiketat e përdoruesit të hapësirës së punës, të renditura sipas emrit, secila me ngjyrën, threadCount, createdAt dhe updatedAt
openemail labels list-colorsListoni paletën që ofron aplikacioni, katërmbëdhjetë ngjyra të plota dhe shtatë gradientë. value është ajo që duhet dhënë si ngjyrë
openemail labels get <id>Lexoni një etiketë përdoruesi, me id-në e saj të krahasuar duke dalluar shkronjat e mëdha nga të voglat
openemail labels create --name <value>Krijoni një etiketë përdoruesi. --color-background-color i jep një ngjyrë
openemail labels update <id>Riemërtoni ose ringjyrosni një etiketë. Id-ja mbetet, po ashtu edhe bisedat që e mbartin
openemail labels delete <id>Fshini një etiketë dhe hiqeni nga çdo bisedë që e mbartte. Kërkon konfirmim
  • Një id nuk ndryshon kurrë, edhe pas një riemërtimi, ndaj ruani id-të dhe jo emrat.
  • Etiketat e sistemit si INBOX, STARRED dhe UNREAD nuk listohen dhe nuk mund të ndryshohen ose fshihen, megjithëse threads update i pranon. labels get për njërën prej tyre jep 404.
  • Një hapësirë pune mban deri në 50 etiketa përdoruesi. Një emër që e ka tashmë një etiketë tjetër, pa dalluar shkronjat e mëdha nga të voglat, refuzohet me label_name_taken.
  • Një ngjyrë është një vlerë hex si #3B82F6 ose një token gradienti si gradient:sunset. --label-color e merr gjithë ngjyrën si JSON, dhe --label-color null e pastron.
  • Një etiketë i përket hapësirës së punës, ndaj riemërtimi, ringjyrosja ose fshirja e saj e ndryshon për këdo në të.
  • labels delete nuk ka zhbërje. Krijimi sërish i një etikete me të njëjtin emër jep të njëjtën id, por bisedat nuk e rimarrin. threadCount i saj te labels get tregon sa biseda do ta humbasin.

Si i përdorin ato komandat e postës

Komanda e postësÇfarë ekzekuton
inbox [folder]threads list për një faqe, pastaj threads get për çdo bisedë, gjashtë njëherësh
search <query...>threads list --query, pastaj threads get për çdo bisedë
read <thread-id>threads get, pastaj threads update --read përveç nëse jepni --no-mark-read
reply <thread-id>threads get për marrësit, subjektin dhe adresën e dërgimit, pastaj emails send brenda bisedës
archive <thread-id...>threads update --add-label-ids ARCHIVE --remove-label-ids INBOX
unarchive <thread-id...>threads update --add-label-ids INBOX --remove-label-ids ARCHIVE
star, unstar <thread-id...>threads update duke shtuar ose hequr STARRED
mark read, unread <thread-id...>threads update --read, ose --no-read
trash <thread-id...>threads trash
snooze <thread-id...> --until <when>threads snooze, me një vonesë si 3h të kthyer fillimisht në një çast
unsnooze <thread-id...>threads unsnooze
label add, remove <thread-id...>threads update --add-label-ids, ose --remove-label-ids
send --draft <id>emails send --draft-id
  • Një komandë e postës merr disa id bisedash dhe raporton për secilën, dhe me --json shtyp { results, succeeded, failed }. Një komandë në këtë faqe merr një id dhe shtyp atë që kthen API.
  • openemail inbox lexon çdo bisedë që liston për të treguar kush shkroi i fundit dhe subjektin. threads list bën një kërkesë për faqe dhe shtyp vetëm id, që është gjithçka që i duhet një pipeline.
  • openemail read e kthen një mesazh HTML në tekst dhe e shënon bisedën si të lexuar. threads get e shtyp bisedën siç e kthen API dhe nuk ndryshon asgjë.

Shembuj

Shënojeni një bisedë si të lexuar, arkivojeni dhe etiketojeni me një kërkesë, aty ku mark read, archive dhe label add do të bënin tri:

Një përditësim
openemail threads update CAHk7pQ2x9LmZ4 --read --add-label-ids ARCHIVE,USER_RECEIPTS --remove-label-ids INBOX --json

Krijoni një etiketë dhe renditni nën të çdo bisedë që përputhet. Kur dalja dërgohet në pipe, --all shtyp një objekt JSON për rresht:

Etiketoni një kërkim
openemail labels create --name Receipts --color-background-color gradient:meadowopenemail threads list --query "in:anywhere subject:receipt newer_than:1y" --all | jq -r .id | xargs openemail label add --label USER_RECEIPTS

Ruani një skedar nga një mesazh. Id-të e mesazheve ndodhen te messages e threads get:

Ruani një bashkëngjitje
openemail threads get CAHk7pQ2x9LmZ4 --json | jq -r ".messages[].id"openemail threads list-attachments CAHk7pQ2x9LmZ4 message_4c1b257a --json | jq -r '.[] | select(.filename == "invoice.pdf") | .content' | base64 --decode > invoice.pdf

Shkruani një draft, ndryshojeni, lexojeni sërish, pastaj dërgojeni:

Draft, pastaj dërgim
DRAFT=$(openemail drafts create --to [email protected] --subject "Engine notes for Thursday" --html "<p>Agenda below.</p>" --json | jq -r .id)openemail drafts update "$DRAFT" --to [email protected],[email protected]openemail drafts get "$DRAFT"openemail send --draft "$DRAFT" --from [email protected] --to [email protected],[email protected]

Pastroni draftet që askush nuk i ka ruajtur për 30 ditë. Ekzekutimi provë shtyp çdo DELETE pa e dërguar, dhe --yes i përgjigjet konfirmimit:

Draftet e vjetra
openemail drafts list --query older_than:30d --all | jq -r .id > stale.txtxargs -n 1 openemail drafts delete --dry-run < stale.txtxargs -n 1 openemail drafts delete --yes < stale.txt

Zgjidhni një gradient nga paleta, shihni paraprakisht ndryshimin, bëjeni, dhe më vonë hiqeni sërish ngjyrën:

Ringjyrosni një etiketë
openemail labels list-colors --json | jq -r '.[] | select(.kind == "gradient") | .value'openemail labels update USER_RECEIPTS --name "Receipts 2026" --color-background-color gradient:aurora --dry-runopenemail labels update USER_RECEIPTS --name "Receipts 2026" --color-background-color gradient:auroraopenemail labels update USER_RECEIPTS --label-color null

Fushëveprimet dhe kodet e verifikimit

FushëveprimiKomandat
threads:readthreads list, get dhe list-attachments
threads:writethreads update, trash, snooze dhe unsnooze
drafts:readdrafts list dhe get
drafts:writedrafts create, update dhe delete
labels:readlabels list, list-colors dhe get
labels:writelabels create, update dhe delete

Një fushëveprim që mungon ndalet me kodin e daljes 4. Asnjë nga këto komanda nuk kërkon kod verifikimi, as me hyrje me shfletues, as me çelës API.

Një hyrje ose çelës i kufizuar në disa adresa sheh vetëm bisedat e dorëzuara te ato, dhe çdo bisedë tjetër është 404, sikur të mos ekzistonte. Etiketat i përkasin hapësirës së punës, ndaj sheh përsëri çdo etiketë, por threadCount numëron vetëm bisedat që mund të shohë.

Faqet, konfirmimet dhe ekzekutimet provë

  • threads list, drafts list dhe labels list lexojnë një faqe, 25 përveç nëse --limit thotë ndryshe, deri në 100. --cursor vazhdon nga kursori që shtypi një faqe. Një kursor bisedash ruan rendin në të cilin u dha, ndaj dërgoni të njëjtët filtra me të.
  • --all lexon çdo faqe dhe --max <n> ndalet pas aq elementeve. Kur dalja dërgohet në pipe ose me --ndjson shtyp një objekt JSON për rresht, dhe me --json një dokument të vetëm { items, hasMore, nextCursor }.
  • hasMore mund të jetë true në atë që del të jetë faqja e fundit, dhe thirrja e radhës atëherë nuk kthen asnjë element. Një bisedë që merr postë të re ndërsa shfletoni faqet kalon para kursorit dhe nuk kthehet nga faqet e mëvonshme, po ashtu edhe një draft i ruajtur ndërsa shfletoni faqet.
  • threads trash, drafts delete dhe labels delete kërkojnë konfirmim. Pa mbikëqyrje, me --json, --no-input ose pa terminal, ndalen me kodin e daljes 2 dhe nuk ndryshojnë asgjë, përveç nëse jepni --yes.
  • --dry-run shtyp kërkesën që do të dërgonte një komandë, me kredencialin të fshehur, dhe del me kodin 0 pa e dërguar dhe pa kërkuar konfirmim. Me --json shtyp { dryRun, request }.

Trupat JSON dhe pastrimi i një fushe

--data merr gjithë trupin si JSON, në rresht, nga një skedar me @path, ose nga stdin me -, dhe një flamur që jepni gjithashtu e mbishkruan çelësin e vet.

Një vlerë bosh flamuri është gabim përdorimi, ndaj një fushë që pastrohet me një vlerë bosh kalon në vend të kësaj përmes --data. --label-color null e pastron ngjyrën e një etikete.

Terminal
openemail drafts update draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8 --data '{"from":""}'openemail drafts update draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8 --data '{"threadId":""}'openemail drafts update draft-5f0c2a9e-8b1d-4e7a-a3c6-2d9f41b7e0c8 --data '{"to":[]}'openemail drafts create --data @draft.json --subject "Overrides the file"

E para e ruan draftin pa dërgues, e dyta e shkëput nga biseda së cilës i përgjigjej, dhe e treta i pastron marrësit.

Çdo flamur

Terminal
openemail threads --helpopenemail threads list --helpopenemail drafts create --help --json

openemail <namespace> <verb> --help tregon çdo argument dhe flamur me llojin e tij, fushëveprimet që i duhen thirrjes, metodën dhe shtegun, çfarë kthen dhe shënimet nga referenca e API-t. Shtoni --json për të njëjtën ndihmë si të dhëna.

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.