getmail não controla os e-mails baixados se o processo for morto

0

Estou usando getmail para arquivar a caixa de entrada da minha conta do Gmail. No entanto, de vez em quando o processo é interrompido - provavelmente devido a uma má conexão com os servidores IMAP do Gmail. Eu acho que a única maneira de reiniciar o processo é simplesmente matar o processo com CTRL + C. Às vezes, ao matar e reiniciar o processo, getmail não está atualizando o arquivo oldmail que ele usa, quando é reiniciado, para determinar quais e-mails foram baixados anteriormente. Isso faz com que o processo leve mais tempo (e possivelmente ocorra novamente) e incha o arquivo mbox que armazena os dados de backup.

Depois de procurar, parece que getmail atualiza apenas o arquivo oldmail quando ele é concluído - e, portanto, se ele for interrompido inesperadamente, os dados nos quais os e-mails já foram baixados serão perdidos. Existe uma maneira de forçar o getmail a atualizar o banco de dados oldmail em tempo real, em vez de apenas no final do processo?

    
por Jason 21.04.2014 / 12:06

1 resposta

1

Em relação ao getmail

As Perguntas frequentes sobre o getmail como esse comportamento são "mais ou menos" conhecidas:

Use the max_messages_per_session option to limit the number of messages getmail will process in a single session. Some users with flaky servers use this option to reduce the chances of seeing messages more than once if the server dies in mid-session.

Solução possível

Uma solução possível (específica do GMail), que elimina completamente a necessidade do arquivo do oldmail, é introduzir um tipo de "bit de arquivo":

  • Crie um marcador personalizado, por exemplo chamado archive
  • Crie um filtro para aplicar esse rótulo a qualquer nova mensagem (recebida ou enviada)
  • Usando um recuperador IMAP, busque apenas e-mails da pasta deste rótulo ( mailboxes option)
  • Defina a opção delete na configuração (no GMail, isso só removerá o rótulo)
por 30.04.2014 / 18:13