Como sei a última vez que um e-mail foi usado?

3

Eu tenho vários e-mails no meu servidor que são usados por algumas pessoas.

Alguns foram criados anos atrás e eu suspeito que não estão mais sendo usados.

Através do ftp eu vejo as pastas

.Drafts
.Junk
.Sent
.spam
.Trash
cur
new
tmp

e os arquivos

dovecot-acl-list
dovecot-uidvalidity.53836d02
dovecot-uidvalidity
dovecot-keywords
subscriptions
courierimapsubscribed
courierimapacl
dovecot-quota
maildirsize
courierimapuiddb
dovecot.index.thread
dovecot.mailbox.log
dovecot.list.index
dovecot.index
dovecot-uidlist
dovecot.list.index.log
dovecot.index.log
dovecot.index.cache

o Date Modified de qualquer um desses arquivos é um bom indicador de quando um e-mail foi usado pela última vez? Por usado quero dizer, pelo menos, ler.

    
por SpaceDog 04.09.2017 / 17:56

1 resposta

3

Alguns antecedentes: suas caixas de correio estão no formato Maildir. As caixas de correio do Maildir têm três subdiretórios, tmp , new e cur . Destes, tmp é usado somente para entrega, new contém novas mensagens e cur leem mensagens. Uma vez entregues, as mensagens consistem em arquivos imutáveis em new e cur . Uma mensagem mudando de estado de "novo" para "leitura" significa essencialmente mover o arquivo correspondente de new para cur . Vários outros sinalizadores por mensagem ( O , F , etc.) são registrados com caracteres especiais anexados a nomes de arquivos. As pastas IMAP são apenas subpastas do Maildir .Sent , .Draft , etc. dentro da caixa de entrada Maildir.

Supondo que suas mensagens estejam no Maildirs /var/mail/<user>/ , isso leva à seguinte heurística:

for mb in /var/mail/*; do
    find "$mb" -type d -name -cur -mtime -365 \
        -exec printf 'user %s is still active\n' $(basename "$mb") \; -quit
done

Isso funciona principalmente, mas pode produzir falsos positivos e falsos negativos. Falsos positivos porque o servidor IMAP pode trollar você e atualizar as pastas mtime of cur ao indexar caixas de correio ou ao executar qualquer outra tarefa periódica. Falso negativos porque um usuário pode simplesmente excluir a pasta com as mensagens mais recentes.

Uma abordagem muito mais segura seria analisar os logs para ver quando foi a última vez que os usuários efetuaram login no SquirrelMail (desde que esse esquilo esteja configurado para manter esses registros em primeiro lugar).

    
por 04.09.2017 / 19:56

Tags