Aller à la documentation
CLI

Courrier

Envoyer avec n'importe quel corps et des pièces jointes, lire et rechercher dans la boîte mail, répondre, classer des fils et utiliser des boîtes jetables.

Envoyer

Terminal
openemail send --to [email protected] --subject "Lunch?" --text "Thursday at noon works for me."

Le corps vient de la première de ces sources qui est présente :

  1. --text et --html, les deux ensemble si vous voulez les deux parties.
  2. --body-file <path>. Un fichier .html ou .htm est envoyé en HTML et tout le reste en texte, et - lit stdin.
  3. Ce qui arrive par stdin. Une entrée qui commence par une balise HTML est envoyée en HTML.
  4. Votre éditeur ($VISUAL, puis $EDITOR), quand vous la lancez dans un terminal.

Sans --from, la CLI envoie depuis la seule adresse depuis laquelle vous pouvez envoyer, ou vous en fait choisir une dans un terminal. Sans surveillance et avec plus d'une adresse, elle s'arrête et réclame --from. Dans un terminal, vous voyez un récapitulatif et confirmez avant tout envoi, ce que --yes saute.

OptionCe qu'il fait
--to, --cc, --bccDestinataires, séparés par des virgules ou répétés. Ada Lovelace <[email protected]> fonctionne aussi
--from, --reply-toL'adresse d'envoi, et l'en-tête Reply-To
-s, --subjectLa ligne d'objet
-a, --attach <path>Joindre un fichier. Répétez pour en ajouter
--at <when>Envoyer plus tard : une heure ISO comme 2026-10-01T09:00:00Z, ou un délai comme 10m, 2h, 1d ou PT1H
--undo <seconds>Retenir un envoi immédiat jusqu'à 900 secondes, pour qu'il puisse encore être annulé
--translate <language>Traduire l'e-mail dans cette langue avant son départ
--template <id>, --props <json>Envoyer un modèle enregistré avec ses props au lieu d'un corps
--draft <id>Envoyer un brouillon enregistré exactement tel qu'il a été écrit
--thread <id>Classer l'e-mail envoyé dans ce fil
--tag <key=value>Étiqueter l'e-mail. Répétez pour en ajouter
--idempotency-key <key>Relancer la commande avec la même clé n'envoie jamais deux fois
Autres envois
cat report.md | openemail send --to [email protected] --subject "Weekly report" --attach chart.pngopenemail send --to [email protected] --subject "Invoice" --body-file invoice.html --translate de --at 2hopenemail send --to [email protected] --template welcome --props '{"name":"Ada"}' --tag campaign=onboarding

Elle affiche l'identifiant de l'e-mail et son statut. sent, partial et failed signifient que l'envoi a été tenté pendant la requête, et queued et scheduled qu'il est retenu. Un envoi failed sort avec le code 1, et --json affiche l'e-mail complet.

Chaque envoi porte une clé d'idempotence, la vôtre ou une que la CLI génère, donc une nouvelle tentative après une connexion coupée n'envoie jamais le message deux fois. Passez la vôtre quand un pipeline peut relancer la même étape.

Pièces jointes

--attach prend jusqu'à 20 fichiers. Tant qu'ils totalisent 5 Mo ou moins, ils voyagent dans le message. Au-delà, chacun est d'abord téléversé dans Fichiers et le message y fait référence, donc un gros fichier ne demande aucune étape supplémentaire. Le type de contenu vient de l'extension du fichier.

Boîte de réception

Terminal
openemail inboxopenemail inbox --unread --limit 50openemail inbox archive --sort oldestopenemail inbox --all --json | jq -r ".items[].id"

Liste une page de fils, du plus récent au plus ancien, avec le moment de la dernière activité, l'auteur du dernier message, l'objet, les libellés et l'identifiant du fil. Un point marque le courrier non lu. Le dossier est la boîte de réception sauf si vous en nommez un autre : sent, archive, starred, snoozed, spam, trash, draft, ou un identifiant de libellé comme USER_RECEIPTS.

  • -u, --unread garde les fils avec du courrier non lu, -l, --label garde les fils qui portent un libellé, et -q, --query restreint la liste par une recherche.
  • -n, --limit fixe la taille de la page, de 1 à 100 (25 par défaut). S'il en reste, le curseur suivant est affiché sur stderr pour --cursor, et --all lit chaque page.
  • --from-contacts garde les fils dont le message le plus récent vient d'un contact enregistré, et --sort les trie par newest, oldest, sender ou subject.
  • --json affiche { items, hasMore, nextCursor }, avec chaque fil complet.

Lire un fil

Terminal
openemail read CAHk7pQ2x9LmZ4openemail read CAHk7pQ2x9LmZ4 --message -1openemail read CAHk7pQ2x9LmZ4 --html --message 1 > first.html

Affiche chaque message du fil, du plus ancien au plus récent : qui l'a envoyé et à qui, quand, l'objet, les pièces jointes avec leur taille et leur identifiant, et le corps. Une partie en texte brut s'affiche telle quelle, et un message uniquement HTML est converti en texte lisible qui garde ses listes, citations, titres et liens. La lecture marque le fil comme lu, sauf si vous passez --no-mark-read.

  • -m, --message <n> montre un seul message, en comptant à partir de 1, ou à partir du plus récent avec un nombre négatif.
  • --html affiche plutôt le HTML brut.
  • Un message chiffré n'est pas déchiffré ici, ouvrez-le donc dans l'application web.

Répondre

Terminal
openemail reply CAHk7pQ2x9LmZ4 --text "Thanks, that works for me."openemail reply CAHk7pQ2x9LmZ4 --all --attach notes.pdfecho "Confirmed." | openemail reply CAHk7pQ2x9LmZ4 --yes

Répond dans le même fil à l'auteur du dernier message, ou à son adresse Reply-To. Quand le dernier message est le vôtre, la réponse va aux personnes à qui il était adressé. --all met en copie toutes les autres personnes de ce message, en laissant de côté vos propres adresses. L'objet reçoit Re: s'il ne l'a pas déjà, et la réponse part de l'adresse à laquelle le fil a été distribué quand vous pouvez envoyer depuis celle-ci.

Elle prend les options de corps, de pièces jointes, de programmation, de traduction, de tags et d'idempotence de send, avec --from et --subject, et --to, --cc et --bcc remplacent les destinataires.

Classer des fils

CommandeCe qu'il fait
archive <thread-id...>Hors de la boîte de réception, toujours trouvable par la recherche
unarchive <thread-id...>Retour dans la boîte de réception
trash <thread-id...>Vers la corbeille. Elle demande confirmation, car aucun appel ne ressort un fil de la corbeille
star, unstarAjouter ou retirer l'étoile
mark read, mark unreadMarquer des fils comme lus ou non lus
snooze <thread-id...> --until <when>Masquer des fils jusqu'à une heure donnée, ou pour un délai comme 3h ou 1w. Ils reviennent dans l'heure environ qui suit
unsnoozeFaire revenir maintenant les fils mis en attente
label add, remove --label <id>Mettre des libellés sur des fils ou les retirer. openemail labels list montre les identifiants

Chacune prend plusieurs identifiants de fil et rend compte de chacun. Le premier échec fixe le code de sortie, et --json affiche { results, succeeded, failed }. Les identifiants d'une recherche s'enchaînent directement :

Terminal
openemail inbox --query "newer_than:30d from:alerts" --json | jq -r ".items[].id" | xargs openemail archive

Boîtes jetables

openemail temp crée des adresses éphémères qui ne demandent ni compte ni connexion, idéales pour les tests d'inscription et les codes à usage unique. Chaque jeton de boîte est conservé dans ~/.openemail/temp-mail.json, donc les commandes suivantes retrouvent une boîte par son identifiant ou son adresse, ou d'elles-mêmes quand vous n'en avez qu'une.

Terminal
ADDRESS=$(openemail temp new --ttl 15)openemail temp watch --first --json | jq -r .snippetopenemail temp listopenemail temp readopenemail temp read tinb_4f2a tmail_91c3openemail temp delete --yes
  • temp new n'affiche que l'adresse sur stdout. Elle vit 60 minutes sauf si --ttl en décide autrement, jusqu'à 24 heures, et --name et --domain choisissent l'adresse.
  • temp watch affiche ce qui est arrivé, puis vérifie toutes les 3 secondes jusqu'à ce que vous l'arrêtiez ou que la boîte expire. --first s'arrête au premier message, et --json affiche une ligne JSON par message.
  • temp read liste les messages avec un court aperçu, ou affiche un message complet.
  • temp delete supprime la boîte et son courrier sur-le-champ. L'adresse reste réservée 7 jours après la fin prévue de son bail.
  • --inbox-token atteint une boîte que cette CLI n'a pas créée, dans temp read, watch et delete.
  • L'expéditeur du courrier d'une boîte jetable n'est jamais vérifié.

Votre boîte de réception,
à vos conditions.

L’infrastructure e-mail pour les entreprises, l’IA, les agents et le courrier personnel. Conçue pour l’échelle, la confidentialité et le contrôle. Tout ce que l’e-mail aurait dû avoir dès le premier jour.

OpenEmail

L’infrastructure e-mail pour les entreprises, l’IA, les agents et le courrier personnel. Conçue pour l’échelle, la confidentialité et le contrôle. Tout ce que l’e-mail aurait dû avoir dès le premier jour.

© 2026 OpenEmail. Tous droits réservés.