답변:
/var/mail/username
파일을 삭제하여 특정 사용자의 모든 이메일을 삭제할 수 있습니다 . 또한 발신하지만 아직 전송되지 않은 이메일은에 저장됩니다 /var/spool/mqueue
.
username
이메일을 삭제하려는 사용자로 대체해야합니다. 귀하의 경우 이메일이 (이)라는 사용자에게 전송되므로을 ( cron_results
를) 삭제해야합니다 /var/www/cron_results
.
대체 방법 :
mail -N
d *
quit
-N
메일을 읽거나 메일 폴더를 편집 할 때 메시지 헤더의 초기 표시를 금지합니다.
d *
모든 메일을 삭제
> mbox
홈 디렉토리에 입력하여 저장된 모든 메일을 삭제하고 싶을 수도 있습니다. mbox 파일이 잘립니다.
그냥 사용하십시오 :
mail
d 1-15
quit
번호 1과 15 사이의 모든 메시지가 삭제됩니다. 모두 삭제하려면을 사용하십시오 d *
.
방금 우분투 12.04.4에서 이것을 직접 사용했으며 매력처럼 작동했습니다.
예를 들면 다음과 같습니다.
eric@dev ~ $ mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/eric": 2 messages 2 new
>N 1 Cron Daemon Tue Jul 29 17:43 23/1016 "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
N 2 Cron Daemon Tue Jul 29 17:44 23/1016 "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
& d *
& quit
그런 다음 메일을 다시 확인하십시오.
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
트립 되는 것은 해당 세션 동안 변경 사항을 롤백하는 것을 사용 x
하거나 exit
종료하는 것입니다.
d*
에 공백이 없습니다 CentOS 7
.
exit
보다는 사용 하는 것 quit
. exit
삭제 대기중인 이메일은 그대로 유지됩니다. quit
변경 사항을 다시 작성하므로 삭제 된 이메일이 해당 시점에 커밋됩니다.
d 1-15
데비안 8에서 작동합니다. 감사합니다!
메일 서비스가 여전히 켜져 있으면 파일이 생성되므로 파일을 삭제하는 대신 파일을 무효화 할 수 있다고 생각합니다. 다음과 같은 일이 일을 할 것입니다
cat /dev/null >/var/spool/mail/tomlinuxusr
그렇습니다.이 오래된 실을 깨워서 미안하지만 내가 기여할 수 있다고 느꼈습니다.
UNIX / Linux / Mac OS X에서는 파일을 복사하고 덮어 쓸 수 있습니다. 이 솔루션은 어떻습니까?
cp /dev/null /var/mail/root
메일 서버에서 cyrus / sasl / imap을 사용하는 경우 지정된 일 수보다 오래된 메일 함의 모든 항목을 제거하는 빠르고 효율적인 방법은 cyrus / imap ipurge 명령을 사용하는 것입니다. 예를 들어, 다음은 사용자 vleo 에서 30 일보다 오래된 모든 것을 제거하는 예제입니다 (주의해야합니다 !!) . cyrus (imap 메일 관리자) 사용자 로 로그인해야합니다 .
[cyrus@mailserver ~]$ /usr/lib/cyrus-imapd/ipurge -f -d 30 user.vleo
Working on user.vleo...
total messages 4
total bytes 113183
Deleted messages 0
Deleted bytes 0
Remaining messages 4
Remaining bytes 113183
"d"를 사용하는 대신 "p"를 사용하지 마십시오. "p *"가 작동하는지 확실하지 않습니다. 나는 그것을 시도하지 않았다. 당신은 할 수 있습니다; 그러나 다음 스크립트를 사용하십시오 "
#!/bin/bash
#
MAIL_INDEX=$(printf 'h a\nq\n' | mail | egrep -o '[0-9]* unread' | awk '{print $1}')
markAllRead=
for (( i=1; i<=$MAIL_INDEX; i++ ))
do
markAllRead=$markAllRead"p $i\n"
done
markAllRead=$markAllRead"q\n"
printf "$markAllRead" | mail