Télécharger

Ligne de commande (préversion pour développeurs)

La commande foldmail : son état actuel, ses commandes, ses options, les fichiers de règles et les codes de sortie.

Préversion pour développeurs. foldmail n’est pas inclus dans l’app FOLD. Il existe actuellement sous forme de build compilé à partir du code source de FOLD, pour le développement et les tests. Il travaille sur son propre stockage de données local, et non sur les données de l’app FOLD, que le bac à sable de macOS conserve dans le conteneur de l’app. La ligne de commande ne voit donc pas le courrier que vous avez dans l’app, et le courrier qu’elle met en file d’attente n’est pas envoyé par l’app. Ses messages et son texte d’aide sont actuellement en allemand.

Cette page décrit ce que fait la préversion aujourd’hui. Les commandes, les options et la sortie peuvent changer avant la livraison de la ligne de commande.

Commandes

CommandeCe qu’elle fait
foldmail accountsListe les comptes
foldmail mailboxes --account <name>Liste les dossiers d’un compte avec le nombre de messages non lus et le nombre total
foldmail search <query>Recherche avec la syntaxe de recherche ; list est un alias
foldmail read <id>Affiche un message ; --headers omet le texte. Sans corps stocké localement, l’aperçu est affiché
foldmail flag <id…> --add <flag> --remove <flag>Définit ou retire des drapeaux et des tags, par exemple \Seen, \Flagged ou important ; les deux options peuvent être répétées
foldmail delete <id…>Retire des messages du stockage local ; des identifiants explicites sont requis
foldmail compose --from <addr> --to <addr>Construit le message et l’écrit sur la sortie standard
foldmail send --account <name> --from <addr> --to <addr>Identique à compose --enqueue : place le message dans la boîte d’envoi
foldmail outbox list --account <name>Liste la boîte d’envoi
foldmail outbox cancel <id>Retire de la boîte d’envoi un message en attente
foldmail filter run --rules <file>Exécute un fichier de règles ; en aperçu, sauf si --apply est indiqué
foldmail helpAffiche l’aide ; foldmail sans argument fait de même

La ligne de commande n’envoie pas elle-même de courrier. send et compose --enqueue placent seulement le message dans la boîte d’envoi de la ligne de commande ; foldmail ne le distribue pas, et l’app FOLD ne lit pas cette boîte d’envoi. L’aide intégrée présente encore ses exemples avec fold ; la commande est foldmail.

Options

OptionUtilisée avecSignification
--jsontoutesSortie en JSON (indentée, clés triées, dates ISO 8601). La structure n’est pas encore versionnée
--quiettoutesUniquement les identifiants, ou uniquement le nombre de messages modifiés
--limit <n>searchNombre maximal de résultats, 100 par défaut
--offset <n>searchIgnore les n premiers résultats
--account <name>mailboxes, send, compose --enqueue, outbox listNom affiché ou adresse du compte
--headersreadEn-têtes uniquement
--add, --remove <flag>flagDrapeau ou tag à définir ou à retirer
--from, --to, --cc, --bcc, --subject, --bodycompose, sendChamps du message ; --to, --cc, --bcc peuvent être répétés. Sans --body, les arguments restants forment le texte
--enqueuecomposeMet en file d’attente au lieu d’afficher
--delay <seconds>send, compose --enqueueDélai avant l’envoi, servant de fenêtre d’annulation
--rules <file>filter runFichier de règles en JSON
--applyfilter runApplique les règles au lieu d’en afficher l’aperçu

Dans la ligne de commande, account: et from-account: filtrent par nom affiché ou par adresse du compte. in: reste sans effet ici aussi.

Passez une requête sous forme d’un seul argument entre guillemets. Un argument distinct qui commence par un signe moins est lu comme une option et ignoré ; écrivez donc foldmail search 'from:anna -is:read', ou placez -- devant une requête qui commence par un signe moins : foldmail search -- '-is:read'.

Fichiers de règles

filter run lit des règles de même structure que les règles de filtrage de l’app, écrites en JSON :

{
  "schemaVersion": 1,
  "rules": [
    {
      "name": "Newsletters",
      "match": "from:[email protected]",
      "actions": [{ "type": "markRead" }, { "type": "addFlag", "flag": "newsletter" }],
      "stopOnMatch": false
    }
  ]
}

Types d’action : markRead, markUnread, addFlag et removeFlag (avec flag), delete, move (avec mailbox), forward (avec to, une liste) et autoReply (avec body). Avec --apply, un fichier de règles contenant move, forward ou autoReply est refusé avant toute modification ; l’aperçu affiche malgré tout ses correspondances.

Codes de sortie

CodeSignification
0Succès
1Erreur générale, par exemple le stockage ne peut pas être ouvert, un opérateur de recherche n’est pas pris en charge (has:attachment), le corps ou une pièce jointe d’un message n’est pas disponible, ou une entrée de la boîte d’envoi ne peut plus être annulée
2Erreur d’utilisation : commande inconnue, option ou valeur d’option manquante, fichier de règles illisible, requête ou identifiant de message invalide
3Rien trouvé : résultat vide, message ou dossier inconnu, ou aucune règle ne correspond
4Les données du message sont incomplètes ou illisibles

Si un compte du stockage de la ligne de commande utilise le mode Fortress, foldmail refuse de s’exécuter et se termine avec le code 1 ; il n’écrit ainsi jamais de données non chiffrées dans un stockage chiffré.

Exemples

foldmail search 'from:anna is:unread' --json
foldmail search 'is:unread' --quiet | xargs foldmail flag --add '\Seen'
foldmail compose --from [email protected] --to [email protected] --subject Hi --body 'Test' > mail.eml
foldmail filter run --rules ~/rules.json
foldmail filter run --rules ~/rules.json --apply