Comandos
Como se lê um comando, as opções globais, cada comando escrito à mão e cada espaço de nomes de recursos.
Como se lê um comando
openemail <command> [subcommand] [arguments] [flags]- As opções ficam em qualquer lugar depois do comando, antes ou depois dos argumentos. As opções globais como
--profilee--jsontambém podem vir antes dele, e qualquer outra opção colocada aí para com uma indicação para a mover para depois do nome do comando. - Um valor segue a sua opção depois de um espaço ou de um sinal de igual, por isso
--limit 50e--limit=50são o mesmo. As opções curtas também aceitam valores, como em-n 50. - Um valor que começa por um hífen precisa do sinal de igual, como em
--subject=-draft-, porque depois de um espaço é lido como a opção seguinte e a primeira é dada como sem valor. Os números negativos funcionam das duas formas. Um valor vazio é um erro de utilização em vez de um valor predefinido silencioso. - Um interruptor liga-se com
--flage desliga-se com--no-flag, e--flag=truee--flag=falsetambém funcionam. - Uma lista é separada por vírgulas ou repetida:
--to [email protected],[email protected], ou--toduas vezes. - Tudo o que vem depois de
--é um argumento e nunca uma opção, e é assim que passa uma pesquisa por-from:ada. - Um comando ou uma opção desconhecidos param com o código de saída
2e sugerem a correspondência mais próxima.
Opções globais
| Opção | O que faz |
|---|---|
| -h, --help | Ajuda do comando ou do grupo |
| -v, --version | Mostrar a versão da CLI |
| --json | Só JSON em stdout, erros como JSON em stderr, e nunca um pedido de entrada |
| -y, --yes | Confirmar ações destrutivas sem perguntar. Nunca salta um código de verificação |
| --profile <name> | Usar este perfil guardado, como OPENEMAIL_PROFILE |
| --api-key <key> | Usar esta chave de API só para este comando, ignorando os perfis |
| --base-url <url> | A origem da API para uma chave de API ou um comando que não envia credenciais, como OPENEMAIL_BASE_URL. Um início de sessão guardado usa sempre a sua |
| --no-input | Nunca perguntar. Um valor em falta para com o código de saída 2 |
| --no-color | Sem cor, como NO_COLOR e FORCE_COLOR=0 |
| --debug | Mostrar os identificadores de pedido, o pedido falhado e os rastreios de pilha |
Comandos escritos à mão
São escritos para pessoas: pedem o que falta, formatam o que mostram e combinam várias chamadas à API quando isso ajuda.
| Comando | O que faz |
|---|---|
| login | Iniciar sessão com o navegador, ou guardar uma chave de API |
| whoami | Com quem iniciou sessão, com o espaço de trabalho, os scopes e a expiração |
| status | O que whoami mostra, mais os seus endereços de envio e o estado de cada domínio |
| verify | Introduzir agora um código de verificação, para que os comandos sensíveis corram durante 60 minutos |
| logout | Terminar sessão e esquecer um perfil |
| profile list, use, current, remove | Listar, alternar e remover inícios de sessão guardados |
| send | Enviar, agendar, ou traduzir e enviar um email |
| inbox [folder] | Listar as conversas de uma pasta |
| search <query> | Pesquisar o correio com a sintaxe que a aplicação usa |
| read <thread-id> | Ler uma conversa, mensagem a mensagem |
| reply <thread-id> | Responder à última mensagem de uma conversa |
| archive, unarchive, trash, star, unstar | Arquivar uma ou mais conversas |
| mark read, mark unread | Marcar conversas como lidas ou não lidas |
| snooze, unsnooze | Ocultar conversas até mais tarde, ou trazê-las de volta agora |
| label add, label remove | Pôr etiquetas em conversas, ou retirá-las |
| temp new, list, read, watch, delete | Caixas de entrada descartáveis, sem início de sessão |
| ai translate, languages, compose, summarize | Traduzir, redigir e resumir correio com IA |
| mcp config, tools, call, serve | Ligar clientes de IA, ou chamar ferramentas MCP você mesmo |
| docs ask, open, read | Perguntar, abrir e ler esta documentação |
| open [page] | Abrir uma página da aplicação web |
| api <method> <path> | Chamar qualquer endpoint REST com o seu início de sessão |
| update | Procurar no npm uma versão mais recente |
| completion <shell> | Mostrar um script de autocompletar para bash, zsh ou fish |
| version | Mostrar as versões da CLI, do SDK e do ambiente de execução |
| help [command] | Mostrar a ajuda de qualquer comando |
Comandos de recursos
Cada método do SDK é também um comando, openemail <namespace> <verb>. O espaço de nomes é o do SDK em kebab-case, e o verbo é o nome do método em kebab-case, por isso keys.listRequests é openemail keys list-requests. Juntos cobrem toda a API REST.
openemail domains listopenemail domains create --domain acme.comopenemail rules create --data @rule.jsonopenemail keys list-requests 9f2c1a4b7e05d3862c1f0a44 --failed-only --allopenemail files download file_6bb640f5b99e47deb758f1f5 --out report.pdf- Um id que o método recebe é um argumento, como em
openemail domains get <id>. Cada campo do corpo do pedido é uma opção com o nome dele em kebab-case:replyToé--reply-to, ecolor.backgroundColoré--color-background-color. - Três campos cuja opção entraria em conflito com uma opção global têm outro nome:
--template-version,--label-colore--resend-key. --datarecebe o corpo inteiro como JSON, em linha, de um ficheiro com@pathou de stdin com-, e qualquer opção que passe também substitui a respetiva chave. Uma opção que recebe um objeto lê JSON da mesma forma.- Os números e os interruptores são lidos como tal, e as listas são separadas por vírgulas ou repetidas.
- Um valor obrigatório em falta é pedido num terminal, e é um erro de utilização (código de saída
2) em qualquer outro lado. - Um verbo de lista lê uma página.
--limitdefine o seu tamanho e--cursorcontinua a partir do cursor que mostrou.--alllê cada página e transmite os itens,--max <n>para depois desse número, e--ndjsonmostra um objeto JSON por linha. - Qualquer coisa destrutiva, como eliminar, revogar, rodar, cancelar ou esvaziar, pede-lhe confirmação, a menos que passe
--yes. - Uma transferência é escrita no ficheiro de
--out, e em stdout só quando stdout não é um terminal.
openemail <namespace> <verb> --help mostra cada argumento e opção com o seu tipo, os scopes de que a chamada precisa, o método e o caminho, o que devolve e as notas da referência da API.
Cada espaço de nomes
Também lista os outros nomes a que um espaço de nomes responde.
| Espaço de nomes | Também | Verbos |
|---|---|---|
| me | get, ping, rotate | |
| keys | key | list, get, create, update, delete, rotate, revoke, list-requests, list-activity, list-workspace-requests, list-workspace-activity |
| addresses | address | list |
| languages | language | list |
| emails | email | send, send-batch, translate, list, get, list-events, get-tracking, cancel, reschedule |
| templates | template | list, get, create, update, duplicate, replace-content, delete, list-versions, get-version, publish, restore-version, delete-version, list-starters, get-starter, list-fonts, render, preview, get-analytics, list-sends, send |
| tracking | list, get-stats, get, list-opens, list-clicks | |
| threads | thread | list, get, update, trash, snooze, unsnooze, list-attachments |
| drafts | draft | list, get, create, update, delete |
| labels | list, list-colors, get, create, update, delete | |
| contacts | contact | list, get, create, update, delete, set-audiences, list-people, save, delete-many, set-photo, remove-photo, block, unblock, list-threads, activity |
| audiences | audience | list, growth, get, create, update, delete, empty, list-contacts, add-contact, remove-contact, add-contacts, remove-contacts, import-contacts |
| broadcasts | broadcast | preview, send, list, get, stats, list-recipients, get-recipient, cancel |
| domains | domain | list, get, create, verify, update, delete, list-addresses, create-address, get-address, update-address, delete-address |
| rules | rule | list, get, create, update, delete, reorder, test, list-runs |
| webhooks | webhook | list, get, create, update, delete, rotate-secret, test, list-deliveries, get-delivery, replay-delivery, list-workspace-deliveries, list-activity, list-workspace-activity |
| imports | import | list, get, create, upload-state, upload-chunk, start, cancel, list-failures, delete-upload, import-files |
| provider-imports | provider-import, providerImports | inspect, create, list, get, cancel |
| calendar | list-events, get-event, get-event-ics | |
| settings | setting | get, update |
| roles | role | list, get, create, update, delete, list-permissions |
| members | member | list, get, add, update, remove, grant-address, revoke-address, list-invitations, revoke-invitation, resend-invitation |
| suppressions | suppression | list, get, add, remove |
| files | file | list, get, stats, download, list-links, create-link, revoke-link, upload, delete, delete-many |
| temp-mail | tempMail | list-domains, create, get, extend, delete, list-messages, get-message, delete-message, list-attachments |
Alias
| Alias | Para |
|---|---|
| ls | list |
| show, view | get |
| new, add | create |
| edit | update |
| rm, del, remove | delete |
| openemail ls | openemail inbox |
| openemail show | openemail read |
Em members e suppressions, cujos verbos são add e remove, new e create levam a add, e rm, del e delete levam a remove. Alguns subcomandos escritos à mão têm os seus próprios alias, que a respetiva ajuda indica.
Qualquer chamada REST
openemail api <method> <path> envia um pedido à API REST pelo mesmo transporte que qualquer outro comando, por isso aplicam-se o seu perfil ou chave, a renovação do token e os códigos de verificação. Um caminho sozinho é um GET. Uma resposta JSON é mostrada formatada, e um pedido falhado mostra o erro da API e termina com o código correspondente.
openemail api /keys/selfopenemail api GET /threads --query folder=inbox --query limit=5openemail api POST /labels --data '{"name":"Receipts"}'openemail api PATCH /threads/CAHk7pQ2x9LmZ4 --data @patch.jsonopenemail api GET /files/file_6bb640f5b99e47deb758f1f5/content --out report.pdf-d,--datarecebe o corpo como JSON em linha, de um ficheiro com@path, ou de stdin com-.-q,--querye-H,--headerrecebemkey=valuee podem repetir-se, e-o,--outguarda a resposta tal como veio num ficheiro.- O caminho é relativo à origem da API. Um URL completo, um caminho que sairia da origem e um cabeçalho
Authorizationsão recusados com o código de saída2antes de enviar alguma coisa, porque a CLI define a credencial ela própria.
Ajuda
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --helpopenemail --help lista cada comando pelo que serve. Um grupo lista os seus subcomandos com exemplos, e um comando mostra tudo o que recebe. openemail docs open cli abre estas páginas.