ユーザーが未読メールを持っているかどうかを確認するためにユーザーIDをパラメータとして受け入れるシェルスクリプトを作成しています/var/spool/mail
。
ユーザーのメールステータスを確認するにはどうすればよいですか?/var/spool/mail
未読メールのみ?その場合は、ファイルサイズが0より大きいユーザーのみを確認するとします。
ベストアンサー1
未読メッセージを見つける1つの方法は、メールスプールファイルのタイムスタンプを確認することです。ファイルがアクセス(読み取り)された後に記録された場合、つまりファイルがmtime
大きいatime
場合は未読メッセージがあります。
for f in /var/spool/mail/* ; do
[ $(stat -c '%Y -gt %X' "$f") ] && echo "$f has unread mail"
done
もちろん、メールボックスを開くと、誰かが個々のメッセージを表示しているかどうかにかかわらず、メールボックスの内容はすべて「読んだ」と見なされます。
多くの場合、読んでいるメッセージも~/mbox
スプールディレクトリから移動(に移動)されるため、ファイルサイズを確認するだけです。