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 threaddheopenemail draftfunksionojnë po aq mirë sa emrat në shumës.openemail labelsnuk ka formë njëjës:openemail labelështë komanda e postës që vendos etiketa në biseda.- Foljet pranojnë pseudonimet e zakonshme:
lspërlist,showdheviewpërget,newdheaddpërcreate,editpërupdate, dherm,deldheremovepërdelete. - Çdo flamur ndodhet te
openemail <namespace> <verb> --help, siopenemail 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 list | Listoni 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 |
--folderka si parazgjedhjeinboxdhe krahasohet si id etikete, ndaj funksionojnësent,archive,spam,trash,draft,snoozed,starreddheunread,binlexohet sitrash, dhe funksionon edhe një id etikete përdoruesi siUSER_RECEIPTS. Një dosje që nuk përputhet me asgjë kthen një faqe bosh, jo një gabim.--querypranon sintaksën e kërkimit të aplikacionit, dhein:anywherekërkon në çdo dosje.--label-idse ngushton më tej, meqë një bisedë duhet të mbartë dosjen dhe çdo id që jepni.--date-fromdhe--date-tolexojnë mesazhin më të ri të çdo bisede, dhe të dy skajet përfshihen.threads getpërfshin përgjigjet draft të padërguara midis mesazheve, të shënuaraisDraft: true, dhe hap edhe një id drafti.threads updatekërkon--read,--no-readose një etiketë për të shtuar ose hequr. Heqjet zbatohen para shtimeve. Një id etikete që nuk emërton asnjë etiketë refuzohet melabel_not_founddhe asgjë në bisedë nuk ndryshon, ndaj krijojeni etiketën më parë.TRASH,SNOOZEDdheDRAFTrefuzohen melabel_not_directly_settable: përdornithreads trashdhethreads snooze.threads trashnuk fshin asgjë, dhe biseda mbetet e lexueshme methreads 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 snoozee dërgon<wake-at>ashtu siç është, ndaj jepini një çast të ardhshëm ISO 8601 meZose një zhvendosje orare, sepse një kohë pa to lexohet në zonën orare të serverit. Një vonesë si3hrefuzohet si e pavlefshme.openemail snooze --until 3hpranon një vonesë. Bisedat zgjohen në një kontroll që bëhet çdo orë, deri në rreth një orë vonë, dhe gjithmonë në inbox.threads list-attachmentse kthen çdo skedar të plotë në një përgjigje të vetme. Merreni id-në e mesazhit ngamessagesethreads 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 list | Listoni 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 create | Ruani 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 --querykërkon në subjekt, te dërguesi dhe në fillim të trupit, dhe nuk del kurrë nga draftet.older_than:30ddhe operatorët e tjerë të datës lexojnë kur u ruajt drafti për herë të fundit, dheto:,cc:dhebcc:nuk përputhen me asgjë në një draft.- Një draft ruhet si bisedë me etiketën
DRAFT, ndajthreads gete hap dheopenemail inbox drafti liston.drafts get,updatedhedeletee refuzojnë një id bisede të zakonshme me 404. - Një
openemail drafts createpa asgjë tjetër ruan një draft bosh. Kontrollohen vetëm gjatësitë: një subjekt deri në 998 karaktere, dhe--htmle--textderi në 1,000,000 secili, me--htmlqë mbahet kur janë vendosur të dyja. Nuk ka flamur për bashkëngjitjet. drafts updatezëvendëson çdo fushë që dërgoni. Një listë e zëvendëson të ruajturën të tërën, ndaj--tome një adresë i heq të tjerat, dhe një përditësim e zbraz listën e bashkëngjitjeve të draftit.--thread-idregjistron 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 createruan 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,--templateose--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 list | Listoni 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-colors | Listoni 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,STARREDdheUNREADnuk listohen dhe nuk mund të ndryshohen ose fshihen, megjithësethreads updatei pranon.labels getpë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
#3B82F6ose një token gradienti sigradient:sunset.--label-colore merr gjithë ngjyrën si JSON, dhe--label-color nulle 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 deletenuk 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.threadCounti saj telabels gettregon 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
--jsonshtyp{ results, succeeded, failed }. Një komandë në këtë faqe merr një id dhe shtyp atë që kthen API. openemail inboxlexon çdo bisedë që liston për të treguar kush shkroi i fundit dhe subjektin.threads listbën një kërkesë për faqe dhe shtyp vetëm id, që është gjithçka që i duhet një pipeline.openemail reade kthen një mesazh HTML në tekst dhe e shënon bisedën si të lexuar.threads gete 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:
openemail threads update CAHk7pQ2x9LmZ4 --read --add-label-ids ARCHIVE,USER_RECEIPTS --remove-label-ids INBOX --jsonKrijoni 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:
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_RECEIPTSRuani një skedar nga një mesazh. Id-të e mesazheve ndodhen te messages e threads get:
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.pdfShkruani një draft, ndryshojeni, lexojeni sërish, pastaj dërgojeni:
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:
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.txtZgjidhni një gradient nga paleta, shihni paraprakisht ndryshimin, bëjeni, dhe më vonë hiqeni sërish ngjyrën:
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 nullFushëveprimet dhe kodet e verifikimit
| Fushëveprimi | Komandat |
|---|---|
| threads:read | threads list, get dhe list-attachments |
| threads:write | threads update, trash, snooze dhe unsnooze |
| drafts:read | drafts list dhe get |
| drafts:write | drafts create, update dhe delete |
| labels:read | labels list, list-colors dhe get |
| labels:write | labels 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 listdhelabels listlexojnë një faqe, 25 përveç nëse--limitthotë ndryshe, deri në 100.--cursorvazhdon 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ë.--alllexon çdo faqe dhe--max <n>ndalet pas aq elementeve. Kur dalja dërgohet në pipe ose me--ndjsonshtyp një objekt JSON për rresht, dhe me--jsonnjë dokument të vetëm{ items, hasMore, nextCursor }.hasMoremund 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 deletedhelabels deletekërkojnë konfirmim. Pa mbikëqyrje, me--json,--no-inputose pa terminal, ndalen me kodin e daljes2dhe nuk ndryshojnë asgjë, përveç nëse jepni--yes.--dry-runshtyp kërkesën që do të dërgonte një komandë, me kredencialin të fshehur, dhe del me kodin0pa e dërguar dhe pa kërkuar konfirmim. Me--jsonshtyp{ 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.
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
openemail threads --helpopenemail threads list --helpopenemail drafts create --help --jsonopenemail <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.