1 pontos por GN⁺ 2024-08-24 | 1 comentários | Compartilhar no WhatsApp
  • Aerc é um cliente de e-mail TUI muito mais jovem que Pine e Mutt, mas já tem maturidade e recursos suficientes para merecer uma nova avaliação para uso diário
  • Graças à ajuda baseada em man pages, como :help e aerc-tutorial (7), dá para aprender rapidamente configuração e atalhos sem documentação externa
  • As contas são gerenciadas com um assistente e com o arquivo de configuração INI ~/.config/aerc/accounts.conf, permitindo organizar de forma consistente até estruturas de pastas diferentes entre servidores
  • Os complicados e-mails HTML no TUI podem ter sua exibição ajustada com w3m, dante, :open e filtros personalizados baseados em MIME e cabeçalhos
  • Combinando edição no Vim, catálogo de endereços externo, PGP, assinaturas, templates e aviso de anexos, é possível montar um fluxo de trabalho de e-mail centrado no terminal de forma flexível

Posição do Aerc e primeiras impressões

  • Aerc é um cliente de e-mail TUI e seu primeiro lançamento foi há cerca de 4 anos
  • Como o Pine foi lançado em 1992 e o Mutt em 1995, o Aerc é bastante jovem em comparação com os clientes de e-mail de terminal mais tradicionais
  • No começo, eu estava relativamente satisfeito com o Thunderbird e o Aerc parecia uma ferramenta um tanto básica, então não o usei; mas, ao olhar de novo recentemente, ele pareceu maduro e completo o bastante para servir como cliente do dia a dia
  • Por já ter tentado usar o neomutt várias vezes e desistido rapidamente por frustração, eu quase não tinha expectativa em relação ao Aerc; mas, na prática, a experiência superou minhas expectativas e ele pareceu ser o cliente de e-mail mais agradável que já usei até agora
  • Ainda é cedo para dizer que ele é melhor do que outros clientes de e-mail, mas o resultado de alguns dias de uso foi muito positivo

Documentação e ajuda embutida

  • O Aerc tem ajuda embutida acessível pelo comando :help
  • O tutorial apresenta de forma concisa os principais recursos e atalhos necessários para uma configuração rápida
  • As outras páginas de ajuda também cobrem cada parte do aplicativo de forma curta e clara, facilitando aprender os recursos sem material externo
  • A documentação de ajuda vem no formato de man page, enviada para o less
    • Ex.: aerc-tutorial (7)
    • É uma forma de incluir um sistema de ajuda portável dentro de uma aplicação TUI

Configuração de contas e gerenciamento de pastas

  • As contas podem ser adicionadas com um assistente simples e intuitivo
  • O assistente cria uma nova entrada de conta em ~/.config/aerc/accounts.conf
  • Esse arquivo usa sintaxe INI, o que o torna fácil de ler e editar
  • A configuração da conta pode incluir endereços IMAP/SMTP, pasta padrão, remetente, local da cópia da pasta de enviados, cache de cabeçalhos, ordenação de pastas, arquivamento, intervalo de checagem de e-mails e arquivos de mapeamento de pastas
  • folders-sort

    • folders-sort é uma opção que sobrescreve a ordenação automática de pastas específicas
    • As pastas definidas aparecem no topo da lista na ordem fornecida, e o restante é ordenado alfabeticamente
    • Eu nunca tinha visto isso em clientes gráficos como Thunderbird ou Outlook, mas parece um recurso que seria bom ter em todo cliente de e-mail
  • folder-map

    • folder-map mapeia a estrutura de pastas do servidor — que varia conforme o provedor de e-mail — para nomes de pastas de exibição
    • O Gmail coloca tudo sob a pasta [Gmail], alguns provedores colocam Sent e Drafts sob INBOX, e outros podem não fazer isso
    • A estrutura de pastas fornecida pelo servidor é difícil de mudar, a menos que você administre o servidor de e-mail diretamente
    • O Aerc transforma as pastas do servidor em nomes de exibição usando um arquivo de regras de mapeamento
      • permite remapear uma única pasta
      • permite remapear uma pasta e todas as suas subpastas
      • permite remover prefixos de todas as subpastas
      • permite remapear subpastas evitando conflitos entre pastas
    • Com esse recurso, dá para trabalhar com uma estrutura de pastas consistente em todas as contas, independentemente da estrutura do servidor
    • Essa consistência é especialmente importante ao gerenciar e-mail via CLI, mais do que em GUI

Leitura de e-mails e tratamento de HTML

  • A experiência de leitura de e-mails foi, em geral, comum; a principal fonte de incômodo parece estar mais nos e-mails HTML do que no próprio Aerc
  • Na maioria dos e-mails multipart, a versão em texto simples é mais difícil de ler do que a versão HTML
  • Em geral dá para entender o sentido, mas às vezes o conteúdo pode parecer embaralhado
  • O Aerc oferece algumas opções para reduzir esse problema
    • É possível visualizar via parser/navegador HTML combinando w3m e dante
    • Em alguns e-mails, a saída gerada é melhor do que a versão em texto simples
    • Como último recurso, dá para usar :open e abrir no navegador web padrão
  • A forma de exibição é configurada com filtros personalizados
    • Os filtros são pipelines *nix pelos quais a mensagem passa antes de ser exibida
    • Os filtros padrão oferecem suporte a colorização de texto simples, itens de calendário e e-mails HTML
    • Os filtros podem ser configurados por tipo MIME e também podem corresponder a cabeçalhos específicos
    • A configuração de exemplo inclui entradas como text/plain=colorize, text/calendar=calendar e text/html=html | colorize

Redação de e-mails e catálogo de endereços

  • A experiência de escrever e-mails é muito boa, e poder redigir mensagens no Vim é uma grande vantagem
  • Integração com catálogo de endereços

    • Em vez de gerenciar o catálogo de endereços diretamente dentro do Aerc, ele delega isso a programas externos
    • O usuário define a consulta de busca a ser enviada ao programa de catálogo, e o resultado é usado no autocompletar dos campos de cabeçalho relevantes
    • O programa padrão é o abook
    • Nos testes, o abook não suportou nomes com caracteres não ASCII, e essa limitação é crítica se você troca e-mails com frequência com usuários de alemão
    • Também não havia uma forma simples de importar para o abook os endereços extraídos de todos os e-mails
    • O aercbook também foi testado, mas tinha o mesmo problema com caracteres não ASCII
    • Em compensação, o aercbook suporta extrair endereços de e-mail de todos os campos de cabeçalho
    • O emailbook-janet é uma reescrita do aercbook
      • tem desempenho inferior, mas resolve o problema de ASCII
      • com um atalho, é possível selecionar um e-mail, extrair os endereços e adicionar tudo automaticamente ao catálogo
    • emailbook-janet e aercbook não são exatamente catálogos de endereços completos; são mais ferramentas que guardam nome e e-mail para viabilizar o autocompletar
    • Se for necessário um catálogo de endereços mais poderoso, também dá para considerar opções como khard, soluções semelhantes ou um servidor LDAP

PGP, assinaturas, templates e notificações

  • O ponto mais incômodo do suporte a PGP/GPG no Thunderbird era usar um chaveiro separado
  • O Aerc também tem seu próprio chaveiro, mas ele é opcional
  • O comportamento padrão é usar diretamente o chaveiro do GPG
  • É possível definir um ID de chave específico para assinar mensagens ou deixar que o Aerc procure a chave pelo endereço de e-mail
  • Também há opção de assinar automaticamente todos os e-mails e de usar opportunistic encryption
  • Se a configuração do GPG estiver correta, o suporte a PGP funciona sem problemas
  • Recursos gerais de configuração

    • O Aerc suporta assinaturas por conta, incluindo um arquivo de texto com signature-file=
    • Também é possível gerar a assinatura executando um comando externo
    • Ele também oferece suporte a templates de e-mail, embora isso não tenha sido explorado em detalhe
    • Tenta remover de forma inteligente repetições de Re: no assunto em vários idiomas, usando expressões regulares
    • As expressões regulares podem ser sobrescritas ou estendidas
    • Também há verificação de assunto vazio e aviso de anexo
      • a verificação de assunto vazio checa se o assunto está em branco
      • o aviso de anexo é baseado em regex, então é fácil expandi-lo
      • a regex padrão é ^[^>]*attach(ed|ment)
      • ela exclui linhas que começam com >, filtrando citações em que outra pessoa mencionou o anexo
      • para e-mails em alemão, a regex pode ser estendida para incluir an(ge)?h[aä]ngt?
    • Depois de alguns dias usando o Aerc, a sensação é forte de um software bem lapidado, e ele parece ser um cliente de e-mail que vale a pena continuar usando por um bom tempo

1 comentários

 
GN⁺ 2024-08-24
Opiniões no Hacker News
  • Uso o Aerc há muito tempo como meu cliente de e-mail diário e, embora eu o use via IMAP (Gmail etc.), ele também funciona muito bem com diretórios de e-mail locais
    Como já estou velho demais para aprender novas combinações de teclas, mudei o mapeamento de teclas do Aerc para atalhos no estilo Vim, e isso me permitiu processar enormes volumes de e-mails muito rapidamente
    Configurei tudo para que Gmail e Imapfilter funcionem corretamente, e também criei filtros que sempre senti falta nos clientes de e-mail tradicionais: filtro pelo remetente atual ff = :filter -f "{{index (.From | emails) 0}}", ver mensagens com o mesmo assunto fs = :filter -H subject:"{{.SubjectBase}}", busca contendo texto no assunto fS = :filter -H subject:, e assim por diante
    Se houver interesse, posso linkar o repositório no GitHub

    • Tenho curiosidade sobre a integração com o Gmail. Tentei fazer com mutt, mas desisti porque não queria passar a tarde inteira nisso
      Além disso, ouvi dizer que o Gmail está eliminando gradualmente o IMAP
    • Este post me deu vontade de mexer no aerc de novo, especialmente porque o primeiro filtro é uma função que sempre quis em um cliente de e-mail
    • https://github.com/rafo/aerc-vim
      Também adicionei pré-visualização de imagens anexadas
    • Tenho interesse especialmente nos atalhos do vim. Com isso, acho que seria muito mais fácil começar
  • Explorei o mutt a fundo, mas acabei concluindo que um cliente de e-mail gráfico atende melhor às minhas necessidades
    Mutt/aerc não dão suporte ao Windows, que eu prefiro e uso bastante no trabalho, e também são deficientes para ver e enviar e-mails em HTML. Meus colegas ficam se perguntando por que meus e-mails aparecem estranhos e por que a formatação das respostas desaparece
    No Betterbird, é rápido arrastar e soltar e-mails em pastas e, ao contrário do mutt, que leva tempo para ficar com uma configuração decente, ele funciona de imediato. mbsync e offlineimap têm suporte fraco a OAuth, enquanto o Betterbird oferece isso nativamente
    Quando preciso, também posso responder ou escrever em texto puro com Shift+clique. Vivo praticamente no terminal, mas neste caso paro por aqui; já o investimento em usar o newsboat como leitor de RSS tem valido a pena até agora
    1: https://www.betterbird.eu/
    2: https://news.ycombinator.com/item?id=39812124
    3: https://isync.sourceforge.io/mbsync.html
    4: https://www.offlineimap.org/

    • Parece que o Aerc também pode ser compilado no Windows, bastando Go e make. Até poucas semanas atrás, o Betterbird também só tinha suporte a MacOS e, quando sugeriram pela primeira vez um build para Mac, a ideia foi recusada por questão de dinheiro
      Como mencionado no texto, o Aerc também permite visualizar e-mails em HTML. Mover e-mails também pode ser muito mais rápido com entradas de teclado do que arrastando com o mouse, e fica ainda mais rápido quando você usa repetidamente as mesmas pastas: algo como pa = :archive flat, pb = :move Brain, pf = :move
      A configuração é muito menos complexa que a do mutt, e OAuth também funciona bem. O Betterbird também é bom, mas não gosto do fato de não poder usar meus atalhos de teclado
    • O segundo e o terceiro problemas podem ser amenizados, respectivamente, com uma entrada w3m no mailcap ou com uma configuração como set send_multipart_alternative_filter=markdown2html.py no muttrc
      https://gitlab.com/muttmua/mutt/-/blob/master/contrib/markdown2html
    • Hoje em dia, o Windows vem com um certo nível de Hyper-V, é possível rodar uma VM Linux, e o OpenSSH também vem por padrão. Para criar um ambiente adequado é preciso mexer um pouco, mas não muito
      Eu uso apenas Linux, mas prefiro GUI, e conecto o Evolution a um MS Exchange on-premises. Também opero e-mail de domínio pessoal para amigos e familiares com Dovecot, Exim etc.
      Não conhecia o Betterbird, mas deixei nos favoritos para avaliar. Algum dia terei de abandonar o servidor Exchange, e estou ansioso pela discussão sobre migrar ou não para o M365. Do ponto de vista do representante que opera sistemas de e-mail há mais de 25 anos, no fim das contas o Exchange também pode ser substituído por uma combinação de IMAPD, MTA e aplicativo de calendário
    • Talvez o dodo seja o que se procura. Ele é basicamente um cliente de e-mail gráfico, mas tem muitos bindings do Vim, misturando as vantagens do terminal e da interface gráfica, e dá a sensação de ser um qutebrowser para e-mail
      Porém, parece que a manutenção parou e que ele só oferece suporte ao backend notmuch
      1: https://github.com/akissinger/dodo
      2: https://qutebrowser.org/
    • A orientação política do autor é questionável, mas uso o mutt-wizard e, nessa configuração, basta pressionar v em vez de o para ver o e-mail no navegador web já aberto
      Para ler e-mails em HTML, foi bom o suficiente. Mas uso apenas para fins pessoais, não profissionais, então isso pode variar de pessoa para pessoa
  • Cansei de manter abertas 5 abas do Gmail e 2 abas de e-mail que não eram Gmail, então configurei o aerc esta semana e sincronizei os e-mails com o backend Notmuch, usando lieer para Gmail e mbsync para os e-mails não Gmail
    Levei cerca de 12 horas para configurar e me acostumar ao fluxo, mas é muito mais agradável do que meu modo de trabalho anterior. Ao contrário de uma aba do Gmail no Firefox, que consumia mais de 100 MB, a nova configuração é bem mais leve, e a busca local também é rápida e de boa qualidade

    • Se você usa Notmuch, recomendo o bower. É uma UI de terminal que interage com o notmuch, e pode ser configurada para funcionar via SSH, então, mesmo que o DB do notmuch esteja em outro computador, dá para abrir anexos na máquina local
      1: https://github.com/wangp/bower
    • Recomendo fortemente experimentar o notmuch. Migrei por volta de 2011 e nunca voltei atrás
      Você não precisa necessariamente usar Emacs como cliente; há muitos front-ends, incluindo o aerc
      https://notmuchmail.org/frontends/
      Entre eles, o alot provavelmente é o mais conhecido
      https://github.com/pazz/alot
  • Clientes de e-mail com UI de terminal sempre me pareceram atraentes, mas acho que entendi por que uma parte de mim os rejeita
    O terminal é meu espaço de meditação. É o playground aonde vou para me concentrar profundamente e fazer o trabalho de verdade de que gosto
    Ler ou escrever e-mails é tarefa administrativa, como Slack, então não quero trazer isso para dentro do meu terminal

    • Eu vejo de um jeito um pouco diferente. Quanto mais algo parece tarefa chata, mais sou atraído por ferramentas que melhoram essa experiência
      Acho que separar essas tarefas, na verdade, reforça associações negativas com elas. Uma hora tudo precisa ser resolvido, então é melhor tornar isso um pouco menos sofrido; pelo menos no meu caso, não prejudica as vantagens de trabalhar no terminal
    • Eu também dependo muito do terminal para a maior parte das coisas, mas e-mail em UI de terminal e navegação na web nunca encaixaram bem para mim. Essa expressão explica exatamente o porquê
  • Os problemas que temos hoje com e-mail vêm da falta de desenvolvimento de ferramentas de e-mail modernas e pessoais
    Por pessoal, quero dizer uma configuração que não vive no servidor de e-mail de outra pessoa, que baixa, sincroniza ou usa IMAP remoto facilmente, que tenha um IMAP em um homeserver pessoal, clientes focados em busca como notmuch-emacs/mu4e e boas ferramentas de filtragem como MailDrop
    As peças já existem todas. Dá para reclassificar e-mails sincronizados com IMAPFilter e OfflineIMAP, ou baixá-los com fetchmail e MailDrop, e usar o notmuch do Emacs ou o Aerc. Mas são apenas programas separados, com configurações, estilos, qualidade de documentação e níveis de amigabilidade diferentes; para quem não é muito geek ou especialista, não há nada
    Por isso muita gente passa a equiparar e-mail a webmail, e a aceitar webmail como um serviço de terceiros, como Slack ou WhatsApp Web. Essa é uma visão perigosa para a liberdade de comunicação e para o poder que o e-mail oferece
    Capturar a fatura recorrente do ISP com uma regra do MailDrop, executar um script, adicionar prazo e valor ao calendário, depois verificar se há uma transação correspondente no software local de contabilidade e alertar se houver algo estranho não é difícil com ferramentas baseadas em texto como org-agenda, BeanCount, MailDrop e e-mail. Com software moderno é muito difícil, e isso é uma grande perda para potenciais power users que teriam de passar por um caminho longo demais para aprender e implementar automações simples, ou que nem sabem que essa possibilidade existe
    A TI nasceu para simplificar a vida e expandir a cognição humana, e é triste que quase todo mundo tenha se esquecido disso
    [1] Por causa dos nomes dos arquivos de e-mail, ao sincronizar em várias máquinas é comum surgirem incômodos com status de não lido ou tags, criação de mensagens duplicadas etc.

    • PESSOAL, em maiúsculas, é realmente importante. Hoje em dia muita gente está presa em sites como o Gmail e nem sabe o que é possível
      O e-mail deveria originalmente permitir 100% de personalização de fluxo de trabalho, filtragem, ordenação, pastas etc.
      Como as ferramentas antigas ainda funcionam, essa possibilidade ainda existe. Só é preciso divulgar melhor como o e-mail é excelente quando usado do jeito originalmente pretendido. Se eu acreditasse que Gmail é e-mail, também odiaria e-mail, mas o Gmail não é o e-mail em si
      procmail e mutt ainda funcionam bem
  • Gosto muito de projetos modernos baseados em texto. Obrigado por manterem o terminal vivo e relevante

  • Vi uma demonstração de alguém lendo e-mail no Emacs com mu4e; a parte em HTML era enviada diretamente por pipe para o Firefox, e algumas mensagens eram convertidas para PDF para leitura
    https://www.youtube.com/watch?v=1uulLBKBMX8

  • O aerc é bastante peculiar por ter sido projetado como cliente, não como algo que armazena e-mails no computador. Por isso há impactos e limitações de desempenho
    Dá para usar e-mail local também, mas, pelo que vi, parecia uma funcionalidade de segunda classe; porém vi isso há muito tempo, então hoje pode ser diferente
    Com esse design, eu esperaria que IMAP funcionasse melhor, mas a conexão caía com frequência e eu precisava reiniciar para reconectar. A sobreposição de atalhos entre neovim e aerc também é incômoda
    No geral, não fiquei satisfeito. Talvez eu possa revisar a configuração para ver o que deixei passar, mas por enquanto estou apostando mais no neomutt

    • Usar junto com um diretório de e-mail local é definitivamente melhor. Acho que a maioria dos usuários de UIs de terminal para e-mail usa junto com utilitários como mbsync e notmuch para melhorar a experiência geral
    • Eu também tenho quedas na conexão IMAP. Pode soar meio tosco, mas executo o aerc dentro de um loop while e, quando ele fica estranho, saio com q e o abro de novo em alguns segundos
      Ainda assim, continua sendo meu cliente de e-mail favorito, mas com certeza poderia melhorar
    • Fico curioso sobre o que significa a sobreposição de atalhos entre neovim e aerc. O Vim usa praticamente todas as teclas do teclado, então parece um problema que poderia acontecer com praticamente qualquer programa, não?
    • O melhor agente de usuário de e-mail, o mutt, reconecta automaticamente quando a conexão com o servidor IMAP falha. Mas não parece funcionar sempre
      https://lwn.net/Articles/837960/
    • Mas não é a mesma coisa com o mutt?
  • himalaya parece promissor
    https://github.com/soywod/himalaya
    https://pimalaya.org/himalaya/cli/latest/index.html

  • Não encontrei em lugar nenhum uma explicação do que é “TUI”. Parece que dá para entender como interface de usuário em texto