[email] 엄청난 수의 이메일로 리눅스 메일 박스를 어떻게 제거합니까? [닫은]

일부 크론 작업을 설정했으며 크론 결과를 전자 메일로 보냅니다. 몇 달에 걸쳐 나는 수많은 이메일을 축적했습니다.

이제 내 질문은 어떻게 사서함에서 모든 전자 메일을 제거 할 수 있습니까?



답변

/var/mail/username파일을 삭제하여 특정 사용자의 모든 이메일을 삭제할 수 있습니다 . 또한 발신하지만 아직 전송되지 않은 이메일은에 저장됩니다 /var/spool/mqueue.


답변

대체 방법 :

mail -N
d *
quit

-N메일을 읽거나 메일 폴더를 편집 할 때 메시지 헤더의 초기 표시를 금지합니다.
d *모든 메일을 삭제


답변

그냥 사용하십시오 :

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종료하는 것입니다.


답변

메일 서비스가 여전히 켜져 있으면 파일이 생성되므로 파일을 삭제하는 대신 파일을 무효화 할 수 있다고 생각합니다. 다음과 같은 일이 일을 할 것입니다

cat /dev/null >/var/spool/mail/tomlinuxusr

그렇습니다.이 오래된 실을 깨워서 미안하지만 내가 기여할 수 있다고 느꼈습니다.


답변

짧막 한 농담:

echo 'd *' | mail -N


답변

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