Línea de comandos (vista previa para desarrolladores)
El comando foldmail: su estado actual, comandos, opciones, archivos de reglas y códigos de salida.
Vista previa para desarrolladores.
foldmailno viene incluido en la app FOLD. Actualmente existe como compilación a partir del código fuente de FOLD para desarrollo y pruebas. Trabaja con su propio almacén de datos local, no con los datos de la app FOLD, que el sandbox de macOS mantiene en el contenedor de la app. Por eso, la línea de comandos no ve el correo que tienes en la app, y el correo que pone en cola no lo envía la app. Sus mensajes y su texto de ayuda están actualmente en alemán.
Esta página describe lo que hace hoy la vista previa. Los comandos, las opciones y la salida pueden cambiar antes de que se publique la línea de comandos.
Comandos
| Comando | Qué hace |
|---|---|
foldmail accounts | Enumera las cuentas |
foldmail mailboxes --account <name> | Enumera las carpetas de una cuenta con el número de mensajes no leídos y el total |
foldmail search <query> | Busca con la sintaxis de búsqueda; list es un alias |
foldmail read <id> | Muestra un mensaje; --headers omite el texto. Si no hay un cuerpo guardado localmente, se muestra la vista previa |
foldmail flag <id…> --add <flag> --remove <flag> | Establece o quita indicadores y etiquetas, por ejemplo \Seen, \Flagged o important; ambas opciones se pueden repetir |
foldmail delete <id…> | Quita mensajes del almacén local; se requieren ID explícitos |
foldmail compose --from <addr> --to <addr> | Construye el mensaje y lo escribe en la salida estándar |
foldmail send --account <name> --from <addr> --to <addr> | Igual que compose --enqueue: pone el mensaje en la bandeja de salida |
foldmail outbox list --account <name> | Enumera la bandeja de salida |
foldmail outbox cancel <id> | Vuelve a sacar de la bandeja de salida un mensaje en espera |
foldmail filter run --rules <file> | Ejecuta un archivo de reglas; vista previa salvo que se indique --apply |
foldmail help | Muestra la ayuda; foldmail sin argumentos hace lo mismo |
La línea de comandos no envía correo por sí misma. send y compose --enqueue solo ponen el mensaje en la bandeja de salida de la línea de comandos; foldmail no lo entrega, y la app FOLD no lee esa bandeja de salida. La ayuda integrada aún muestra sus ejemplos con fold; el comando es foldmail.
Opciones
| Opción | Se usa con | Significado |
|---|---|---|
--json | todos | Salida en JSON (con sangría, claves ordenadas, fechas ISO 8601). La estructura aún no tiene versión |
--quiet | todos | Solo los ID, o solo el número de mensajes modificados |
--limit <n> | search | Número máximo de resultados, 100 por defecto |
--offset <n> | search | Omite los n primeros resultados |
--account <name> | mailboxes, send, compose --enqueue, outbox list | Nombre visible o dirección de la cuenta |
--headers | read | Solo los encabezados |
--add, --remove <flag> | flag | Indicador o etiqueta que se establece o se quita |
--from, --to, --cc, --bcc, --subject, --body | compose, send | Campos del mensaje; --to, --cc y --bcc se pueden repetir. Sin --body, los argumentos restantes forman el texto |
--enqueue | compose | Pone en cola en lugar de imprimir |
--delay <seconds> | send, compose --enqueue | Espera antes de enviar, como margen para deshacer |
--rules <file> | filter run | Archivo de reglas en JSON |
--apply | filter run | Aplica las reglas en lugar de mostrar una vista previa |
En la línea de comandos, account: y from-account: filtran por el nombre visible o la dirección de la cuenta. in: tampoco tiene efecto aquí.
Pasa una consulta como un único argumento entre comillas. Un argumento independiente que empieza por un signo menos se interpreta como opción y se descarta, así que escribe foldmail search 'from:anna -is:read', o pon -- delante de una consulta que empiece por un signo menos: foldmail search -- '-is:read'.
Archivos de reglas
filter run lee reglas con la misma estructura que las reglas de filtro de la app, escritas en JSON:
{
"schemaVersion": 1,
"rules": [
{
"name": "Newsletters",
"match": "from:[email protected]",
"actions": [{ "type": "markRead" }, { "type": "addFlag", "flag": "newsletter" }],
"stopOnMatch": false
}
]
}
Tipos de acción: markRead, markUnread, addFlag y removeFlag (con flag), delete, move (con mailbox), forward (con to, una lista) y autoReply (con body). Con --apply, un archivo de reglas que contiene move, forward o autoReply se rechaza antes de que cambie nada; la vista previa sigue mostrando sus coincidencias.
Códigos de salida
| Código | Significado |
|---|---|
| 0 | Éxito |
| 1 | Error general, por ejemplo: no se puede abrir el almacén, un operador de búsqueda no es compatible (has:attachment), el cuerpo o un archivo adjunto de un mensaje no están disponibles, o una entrada de la bandeja de salida ya no se puede cancelar |
| 2 | Error de uso: comando desconocido, falta una opción o el valor de una opción, archivo de reglas ilegible, consulta o ID de mensaje no válidos |
| 3 | No se encontró nada: resultado vacío, mensaje o carpeta desconocidos, o ninguna regla coincidió |
| 4 | Los datos del mensaje están incompletos o son ilegibles |
Si una cuenta del almacén de la línea de comandos usa el modo Fortress, foldmail se niega a ejecutarse y sale con 1, así que nunca escribe datos sin cifrar en un almacén cifrado.
Ejemplos
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