Commandes
Comment se lit une commande, les options globales, chaque commande écrite à la main et chaque espace de noms de ressources.
Comment se lit une commande
openemail <command> [subcommand] [arguments] [flags]- Les options se placent n'importe où après la commande, avant ou après les arguments. Les options globales comme
--profileet--jsonpeuvent aussi venir avant elle, et toute autre option placée là s'arrête avec une indication pour la déplacer après le nom de la commande. - Une valeur suit son option après une espace ou un signe égal, donc
--limit 50et--limit=50reviennent au même. Les options courtes prennent aussi des valeurs, comme dans-n 50. - Une valeur qui commence par un tiret exige le signe égal, comme dans
--subject=-draft-, car après une espace elle se lit comme l'option suivante et la première est signalée comme sans valeur. Les nombres négatifs fonctionnent dans les deux cas. Une valeur vide est une erreur d'utilisation plutôt qu'une valeur par défaut discrète. - Un interrupteur s'active avec
--flaget se désactive avec--no-flag, et--flag=trueet--flag=falsefonctionnent aussi. - Une liste est séparée par des virgules ou répétée :
--to [email protected],[email protected], ou--todeux fois. - Tout ce qui suit
--est un argument et jamais une option, c'est ainsi qu'une recherche de-from:adapasse. - Une commande ou une option inconnue s'arrête avec le code de sortie
2et suggère la correspondance la plus proche.
Options globales
| Option | Ce qu'il fait |
|---|---|
| -h, --help | L'aide de la commande ou du groupe |
| -v, --version | Afficher la version de la CLI |
| --json | Uniquement du JSON sur stdout, les erreurs en JSON sur stderr, et jamais d'invite |
| -y, --yes | Confirmer les actions destructrices sans demander. Ne saute jamais un code de vérification |
| --profile <name> | Utiliser ce profil enregistré, comme OPENEMAIL_PROFILE |
| --api-key <key> | Utiliser cette clé API pour cette seule commande, en ignorant les profils |
| --base-url <url> | L'origine de l'API pour une clé API ou une commande qui n'envoie aucun identifiant, comme OPENEMAIL_BASE_URL. Une connexion enregistrée utilise toujours la sienne |
| --no-input | Ne jamais demander. Une valeur manquante s'arrête avec le code de sortie 2 |
| --no-color | Pas de couleur, comme NO_COLOR et FORCE_COLOR=0 |
| --debug | Afficher les identifiants de requête, la requête en échec et les traces de pile |
Commandes écrites à la main
Elles sont écrites pour des personnes : elles demandent ce qui manque, mettent en forme ce qu'elles affichent et combinent plusieurs appels d'API quand cela aide.
| Commande | Ce qu'il fait |
|---|---|
| login | Se connecter avec le navigateur, ou enregistrer une clé API |
| whoami | Sous quelle identité vous êtes connecté, avec l'espace de travail, les scopes et l'expiration |
| status | Ce que montre whoami, plus vos adresses d'envoi et l'état de chaque domaine |
| verify | Saisir un code de vérification maintenant, pour que les commandes sensibles s'exécutent pendant 60 minutes |
| logout | Se déconnecter et oublier un profil |
| profile list, use, current, remove | Lister, changer et supprimer des connexions enregistrées |
| send | Envoyer, programmer, ou traduire et envoyer un e-mail |
| inbox [folder] | Lister les fils d'un dossier |
| search <query> | Rechercher dans le courrier avec la syntaxe de l'application |
| read <thread-id> | Lire un fil, message par message |
| reply <thread-id> | Répondre au dernier message d'un fil |
| archive, unarchive, trash, star, unstar | Classer un ou plusieurs fils |
| mark read, mark unread | Marquer des fils comme lus ou non lus |
| snooze, unsnooze | Masquer des fils jusqu'à plus tard, ou les faire revenir maintenant |
| label add, label remove | Mettre des libellés sur des fils, ou les retirer |
| temp new, list, read, watch, delete | Boîtes jetables, sans connexion |
| ai translate, languages, compose, summarize | Traduire, rédiger et résumer du courrier avec l'IA |
| mcp config, tools, call, serve | Connecter des clients IA, ou appeler vous-même des outils MCP |
| docs ask, open, read | Interroger, ouvrir et lire cette documentation |
| open [page] | Ouvrir une page de l'application web |
| api <method> <path> | Appeler n'importe quel point de terminaison REST avec votre connexion |
| update | Chercher une version plus récente sur npm |
| completion <shell> | Afficher un script de complétion pour bash, zsh ou fish |
| version | Afficher les versions de la CLI, du SDK et de l'environnement d'exécution |
| help [command] | Afficher l'aide de n'importe quelle commande |
Commandes de ressources
Chaque méthode du SDK est aussi une commande, openemail <namespace> <verb>. L'espace de noms est celui du SDK en kebab-case, et le verbe est le nom de la méthode en kebab-case, donc keys.listRequests devient openemail keys list-requests. Ensemble, elles couvrent toute l'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- Un identifiant que prend la méthode est un argument, comme dans
openemail domains get <id>. Chaque champ du corps de la requête est une option qui porte son nom en kebab-case :replyTodevient--reply-to, etcolor.backgroundColordevient--color-background-color. - Trois champs dont l'option entrerait en conflit avec une option globale sont renommés :
--template-version,--label-coloret--resend-key. --dataprend tout le corps en JSON, en ligne, depuis un fichier avec@pathou depuis stdin avec-, et toute option passée en plus remplace sa clé. Une option qui prend un objet lit le JSON de la même façon.- Les nombres et les interrupteurs sont lus comme tels, et les listes sont séparées par des virgules ou répétées.
- Une valeur obligatoire manquante est demandée dans un terminal, et constitue une erreur d'utilisation (code de sortie
2) partout ailleurs. - Un verbe de liste lit une page.
--limitfixe sa taille et--cursorreprend au curseur qu'il a affiché.--alllit chaque page et diffuse les éléments,--max <n>s'arrête après autant d'éléments, et--ndjsonaffiche un objet JSON par ligne. - Toute action destructrice, comme supprimer, révoquer, faire tourner, annuler ou vider, vous demande confirmation, sauf si vous passez
--yes. - Un téléchargement est écrit dans le fichier indiqué par
--out, et sur stdout seulement quand stdout n'est pas un terminal.
openemail <namespace> <verb> --help montre chaque argument et option avec son type, les scopes dont l'appel a besoin, sa méthode et son chemin, ce qu'il renvoie, et les notes de la référence de l'API.
Chaque espace de noms
Aussi liste les autres noms auxquels un espace de noms répond.
| Espace de noms | Aussi | Verbes |
|---|---|---|
| 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 | Pour |
|---|---|
| ls | list |
| show, view | get |
| new, add | create |
| edit | update |
| rm, del, remove | delete |
| openemail ls | openemail inbox |
| openemail show | openemail read |
Dans members et suppressions, dont les verbes sont add et remove, new et create mènent à add, et rm, del et delete mènent à remove. Quelques sous-commandes écrites à la main ont leurs propres alias, que leur aide indique.
N'importe quel appel REST
openemail api <method> <path> envoie une requête à l'API REST par le même transport que toutes les autres commandes, donc votre profil ou votre clé, le renouvellement du jeton et les codes de vérification s'appliquent tous. Un chemin seul est un GET. Une réponse JSON s'affiche formatée, et une requête en échec affiche l'erreur de l'API et se termine avec le code correspondant.
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,--dataprend le corps en JSON en ligne, depuis un fichier avec@path, ou depuis stdin avec-.-q,--queryet-H,--headerprennentkey=valueet peuvent être répétées, et-o,--outenregistre la réponse telle quelle dans un fichier.- Le chemin est relatif à l'origine de l'API. Une URL complète, un chemin qui sortirait de l'origine et un en-tête
Authorizationsont refusés avec le code de sortie2avant tout envoi, car la CLI fixe elle-même l'identifiant.
Aide
openemail --helpopenemail help sendopenemail domains --helpopenemail domains create --helpopenemail --help liste chaque commande selon son usage. Un groupe liste ses sous-commandes avec des exemples, et une commande montre tout ce qu'elle prend. openemail docs open cli ouvre ces pages.