我的服务器上有几封电子邮件被某些人使用。
有些是几年前创建的,我怀疑不再使用了。
通过 ftp 我看到文件夹
.Drafts
.Junk
.Sent
.spam
.Trash
cur
new
tmp
和文件
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
Date Modified
这些文件中的任何一个都可以很好地指示电子邮件上次使用的时间吗?我所说的“使用”是指至少阅读过。
答案1
首先一些背景知识:您的邮箱采用 Maildir 格式。 Maildir 邮箱具有三个子目录:tmp
、new
和cur
。其中,tmp
仅用于传递、new
包含新消息和cur
已读消息。一旦传递的消息由new
和中的不可变文件组成cur
。消息状态从“新”更改为“已读”本质上意味着将相应的文件从 移动new
到cur
。各种其他每消息标志(O
、F
等)是通过附加到文件名的特殊字符来记录的。 IMAP 文件夹只是收件箱 Maildir 内的Maildir 子文件夹.Sent
、等。.Draft
假设您的消息存在于 Maildirs 中/var/mail/<user>/
,这会导致以下启发:
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
这在很大程度上是有效的,但它可能会产生误报和漏报。误报是因为 IMAP 服务器可能会在索引邮箱或执行任何其他定期任务时欺骗您并更新文件夹mtime
。cur
漏报,因为用户可能只是删除包含最新消息的文件夹。
更安全的方法是解析日志以查看用户上次登录 SquirrelMail 的时间(前提是所述 squirrel 配置为首先保留此类日志)。