내 서버에는 일부 사람들이 사용하는 여러 개의 이메일이 있습니다.
일부는 몇 년 전에 만들어졌는데 더 이상 사용되지 않는 것 같습니다.
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
전달에만 사용됩니다 . 일단 전달된 메시지는 및 에 있는 변경할 수 없는 파일로 구성됩니다 . 메시지 상태를 "새로 만들기"에서 "읽기"로 변경한다는 것은 기본적으로 해당 파일을 에서 으로 이동한다는 의미 입니다 . 다양한 기타 메시지별 플래그( 등 )는 파일 이름에 추가된 특수 문자로 기록됩니다. IMAP 폴더는 받은 편지함의 Maildir 내에 있는 Maildir 하위 폴더 등입니다.new
cur
new
cur
new
cur
O
F
.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에 마지막으로 로그인한 시간을 확인하는 것입니다(다람쥐가 처음에 그러한 로그를 유지하도록 구성되어 있는 경우).