J'ai configuré certains travaux cron et ils envoient le résultat crons à un e-mail. Au fil des mois, j'ai accumulé un grand nombre d'e-mails.
Maintenant, ma question est de savoir comment puis-je purger tous ces e-mails de ma boîte aux lettres?
J'ai configuré certains travaux cron et ils envoient le résultat crons à un e-mail. Au fil des mois, j'ai accumulé un grand nombre d'e-mails.
Maintenant, ma question est de savoir comment puis-je purger tous ces e-mails de ma boîte aux lettres?
Réponses:
Vous pouvez simplement supprimer le /var/mail/username
fichier pour supprimer tous les e-mails d'un utilisateur spécifique. De plus, les e-mails sortants mais qui n'ont pas encore été envoyés seront stockés dans /var/spool/mqueue
.
username
doit être remplacé par l'utilisateur pour lequel vous souhaitez supprimer les e-mails. Dans votre cas, les e-mails sont envoyés à l'utilisateur appelé cron_results
, vous devrez donc les supprimer /var/www/cron_results
.
voie alternative:
mail -N
d *
quit
-N
Empêche l'affichage initial des en-têtes de message lors de la lecture du courrier ou de la modification d'un dossier de messagerie.
d *
supprimer tous les e-mails
> mbox
dans le répertoire personnel, cela tronque simplement le fichier mbox.
Utilisez simplement:
mail
d 1-15
quit
Ce qui supprimera tous les messages entre le numéro 1 et 15. pour tout supprimer, utilisez le d *
.
Je viens de l'utiliser moi-même sur Ubuntu 12.04.4, et cela a fonctionné comme un charme.
Par exemple:
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
Vérifiez à nouveau votre courrier:
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
Ce qui vous fait trébucher, c'est que vous utilisez x
ou exit
pour quitter ce qui annule les modifications au cours de cette session.
d*
, au moins sur CentOS 7
.
exit
plutôt que quit
me faire trébucher. exit
interrompra la session, de sorte que tous les e-mails en attente de suppression restent intacts. quit
réécrira les modifications, les e-mails supprimés sont alors validés.
d 1-15
fonctionne sur Debian 8. Merci!
Plutôt que de supprimer, je pense que nous pouvons annuler le fichier, car le fichier sera créé si le service de messagerie est toujours activé. Quelque chose comme suivre fera l'affaire
cat /dev/null >/var/spool/mail/tomlinuxusr
Et oui, désolé d'avoir réveillé ce vieux fil mais j'ai senti que je pouvais contribuer.
Bon mot:
echo 'd *' | mail -N
yes 'd' | mail
fonctionne comme prévu.
Sous UNIX / Linux / Mac OS X, vous pouvez copier et remplacer des fichiers, n'est-ce pas? Alors que diriez-vous de cette solution:
cp /dev/null /var/mail/root
Si vous utilisez cyrus / sasl / imap sur votre serveur de messagerie, alors un moyen rapide et efficace de purger tout dans une boîte aux lettres plus ancienne que le nombre de jours spécifié consiste à utiliser la commande cyrus / imap ipurge . Par exemple, voici un exemple de suppression de tout (attention !!), datant de plus de 30 jours de l'utilisateur vleo . Notez que vous devez être connecté en tant qu'utilisateur cyrus (administrateur de messagerie 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
Plutôt que d'utiliser "d", pourquoi pas "p". Je ne sais pas si le "p *" fonctionnera. Je n'ai pas essayé ça. Vous pouvez; cependant utilisez le script suivant "
#!/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