Linha de comando (prévia para desenvolvedores)
O comando foldmail: seu estado atual, comandos, opções, arquivos de regras e códigos de saída.
Prévia para desenvolvedores. O
foldmailnão está incluído no app FOLD. Hoje ele existe como um build a partir do código-fonte do FOLD, para desenvolvimento e testes. Ele trabalha com o próprio armazenamento local de dados, não com os dados do app FOLD, que o sandbox do macOS mantém no contêiner do app. Por isso, a linha de comando não vê os e-mails que você tem no app, e os e-mails que ela coloca na fila não são enviados pelo app. As mensagens e o texto de ajuda dela estão atualmente em alemão.
Esta página descreve o que a prévia faz hoje. Comandos, opções e saída podem mudar antes do lançamento da linha de comando.
Comandos
| Comando | O que faz |
|---|---|
foldmail accounts | Lista as contas |
foldmail mailboxes --account <name> | Lista as pastas de uma conta com o número de não lidas e o total |
foldmail search <query> | Busca com a sintaxe de busca; list é um alias |
foldmail read <id> | Mostra uma mensagem; --headers omite o texto. Sem um corpo guardado localmente, a prévia é exibida |
foldmail flag <id…> --add <flag> --remove <flag> | Define ou remove sinalizações e etiquetas, por exemplo \Seen, \Flagged ou important; as duas opções podem ser repetidas |
foldmail delete <id…> | Remove mensagens do armazenamento local; IDs explícitos são obrigatórios |
foldmail compose --from <addr> --to <addr> | Monta a mensagem e a grava na saída padrão |
foldmail send --account <name> --from <addr> --to <addr> | Igual a compose --enqueue: coloca a mensagem na caixa de saída |
foldmail outbox list --account <name> | Lista a caixa de saída |
foldmail outbox cancel <id> | Retira uma mensagem em espera da caixa de saída |
foldmail filter run --rules <file> | Executa um arquivo de regras; apenas prévia, a menos que --apply seja informado |
foldmail help | Mostra a ajuda; foldmail sem argumentos faz o mesmo |
A linha de comando não envia e-mails por conta própria. send e compose --enqueue apenas colocam a mensagem na caixa de saída da linha de comando; o foldmail não a entrega, e o app FOLD não lê essa caixa de saída. A ajuda integrada ainda mostra os exemplos com fold; o comando é foldmail.
Opções
| Opção | Usada com | Significado |
|---|---|---|
--json | todos | Saída em JSON (indentada, chaves ordenadas, datas ISO 8601). A estrutura ainda não é versionada |
--quiet | todos | Somente IDs, ou somente o número de mensagens alteradas |
--limit <n> | search | Número máximo de resultados, padrão 100 |
--offset <n> | search | Pula os primeiros n resultados |
--account <name> | mailboxes, send, compose --enqueue, outbox list | Nome de exibição ou endereço da conta |
--headers | read | Somente cabeçalhos |
--add, --remove <flag> | flag | Sinalização ou etiqueta a definir ou remover |
--from, --to, --cc, --bcc, --subject, --body | compose, send | Campos da mensagem; --to, --cc, --bcc podem ser repetidos. Sem --body, os argumentos restantes formam o texto |
--enqueue | compose | Coloca na fila em vez de imprimir |
--delay <seconds> | send, compose --enqueue | Espera antes de enviar, como prazo para desfazer |
--rules <file> | filter run | Arquivo de regras em JSON |
--apply | filter run | Aplica as regras em vez de mostrar a prévia |
Na linha de comando, account: e from-account: filtram pelo nome de exibição ou pelo endereço da conta. in: também não tem efeito aqui.
Passe uma consulta como um único argumento entre aspas. Um argumento separado que começa com um sinal de menos é lido como opção e descartado, então escreva foldmail search 'from:anna -is:read' ou coloque -- antes de uma consulta que começa com um sinal de menos: foldmail search -- '-is:read'.
Arquivos de regras
filter run lê regras com a mesma estrutura das regras de filtro do app, escritas em JSON:
{
"schemaVersion": 1,
"rules": [
{
"name": "Newsletters",
"match": "from:[email protected]",
"actions": [{ "type": "markRead" }, { "type": "addFlag", "flag": "newsletter" }],
"stopOnMatch": false
}
]
}
Tipos de ação: markRead, markUnread, addFlag e removeFlag (com flag), delete, move (com mailbox), forward (com to, uma lista) e autoReply (com body). Com --apply, um arquivo de regras que contém move, forward ou autoReply é recusado antes que qualquer coisa mude; a prévia continua mostrando as correspondências dele.
Códigos de saída
| Código | Significado |
|---|---|
| 0 | Sucesso |
| 1 | Erro geral, por exemplo: o armazenamento não pode ser aberto, um operador de busca não tem suporte (has:attachment), o corpo ou um anexo de uma mensagem não está disponível, ou uma entrada da caixa de saída não pode mais ser cancelada |
| 2 | Erro de uso: comando desconhecido, opção ou valor de opção ausente, arquivo de regras ilegível, consulta ou ID de mensagem inválidos |
| 3 | Nada encontrado: resultado vazio, mensagem ou pasta desconhecida, ou nenhuma regra correspondeu |
| 4 | Os dados da mensagem estão incompletos ou ilegíveis |
Se uma conta no armazenamento da linha de comando usar o Modo Fortress, o foldmail se recusa a ser executado e sai com 1, para nunca gravar dados não criptografados em um armazenamento criptografado.
Exemplos
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