Fechado como fora de tópico, mas extremamente útil.
unfa,
Respostas:
150
Você pode simplesmente excluir o /var/mail/usernamearquivo para excluir todos os emails de um usuário específico. Além disso, os e-mails enviados, mas ainda não enviados, serão armazenados /var/spool/mqueue.
O email em questão que recebe todos os emails cron é, por exemplo, [email protected]. Eu só quero limpar todos os e-mails recebidos nesse e-mail, deixando os outros intactos. excluir o / var / www / nome de usuário excluirá tudo, certo?
anjan
3
usernameprecisa ser substituído pelo usuário para o qual você deseja remover os e-mails. No seu caso, os e-mails estão sendo enviados para o usuário chamado cron_results, portanto, você deve excluir /var/www/cron_results.
EdoDodo 16/08
5
Não é uma boa manipulação de dados praxis de fora de um aplicativo. Se houver uma opção ou comando que possa fazer o trabalho, é melhor usá-lo. Como o @timaschew respondeu, você pode usar o comando 'd' dentro da ferramenta de correio.
pocjoc 3/09/2015
1
Muito prático quando o 'mail' responde apenas com 'Memória insuficiente - interrompida'.
Herbert Van-Vliet
398
caminho alternativo:
mail -N
d *
quit
-NInibe a exibição inicial dos cabeçalhos das mensagens ao ler e editar uma pasta de correio. d *excluir todos os e-mails
Funcionou para mim no Debian 7.5 quase baunilha. Como alternativa, pode-se excluir todos os e-mails salvos digitando simplesmente o > mboxdiretório inicial, isso apenas trunca o arquivo mbox.
Ciantic # 26/14
4
@andreas: basta adicioná-lo funcionando com sucesso no CentOS 6.5.
Guillaume G.
3
Também funcionou para mim no Debian Wheezy (7.6)
yuikonnu 18/01/15
2
trabalhando no servidor Ubuntu 14.04
pupil
60
Apenas use:
mail
d 1-15
quit
Que excluirá todas as mensagens entre os números 1 e 15. Para excluir todas, use o d *.
Eu mesmo usei isso no ubuntu 12.04.4 e funcionou como um encanto.
Por exemplo:
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
Em seguida, verifique seu e-mail novamente:
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
O que está atrapalhando você é que você está usando xou exitpara sair, o que reverte as alterações durante essa sessão.
Não há espaço entre d*, pelo menos diante CentOS 7.
CodeMed
7
Usando em exitvez de quitme fazer tropeçar. exitinterromperá a sessão, para que todos os emails com exclusão pendente sejam mantidos intactos. quitgravará as alterações novamente, para que os e-mails excluídos sejam confirmados nesse ponto.
Jason
d 1-15funciona no Debian 8. Obrigado!
Tadej
Não funciona no Red Hat. d 1-15 fornece 'Numérico ilegal'. O mesmo acontece com d *.
Salvador Valencia
23
Em vez de excluir, acho que podemos anular o arquivo, porque o arquivo será criado se o serviço de email ainda estiver ativado. Algo como seguir fará o trabalho
cat /dev/null >/var/spool/mail/tomlinuxusr
E sim, desculpe por despertar esse tópico antigo, mas achei que poderia contribuir.
Se você estiver usando cyrus / sasl / imap no seu servidor de e-mail, uma maneira rápida e eficiente de limpar tudo em uma caixa de correio mais antiga do que o número de dias especificado é usar o comando cyrus / imap ipurge . Por exemplo, aqui está um exemplo de remoção de tudo (tenha cuidado!), Com mais de 30 dias do usuário vleo . Observe que você deve estar logado como usuário do cyrus (administrador de e-mail do 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
Respostas:
Você pode simplesmente excluir o
/var/mail/username
arquivo para excluir todos os emails de um usuário específico. Além disso, os e-mails enviados, mas ainda não enviados, serão armazenados/var/spool/mqueue
.fonte
username
precisa ser substituído pelo usuário para o qual você deseja remover os e-mails. No seu caso, os e-mails estão sendo enviados para o usuário chamadocron_results
, portanto, você deve excluir/var/www/cron_results
.caminho alternativo:
-N
Inibe a exibição inicial dos cabeçalhos das mensagens ao ler e editar uma pasta de correio.d *
excluir todos os e-mailsfonte
> mbox
diretório inicial, isso apenas trunca o arquivo mbox.Apenas use:
Que excluirá todas as mensagens entre os números 1 e 15. Para excluir todas, use o
d *
.Eu mesmo usei isso no ubuntu 12.04.4 e funcionou como um encanto.
Por exemplo:
Em seguida, verifique seu e-mail novamente:
O que está atrapalhando você é que você está usando
x
ouexit
para sair, o que reverte as alterações durante essa sessão.fonte
d*
, pelo menos dianteCentOS 7
.exit
vez dequit
me fazer tropeçar.exit
interromperá a sessão, para que todos os emails com exclusão pendente sejam mantidos intactos.quit
gravará as alterações novamente, para que os e-mails excluídos sejam confirmados nesse ponto.d 1-15
funciona no Debian 8. Obrigado!Em vez de excluir, acho que podemos anular o arquivo, porque o arquivo será criado se o serviço de email ainda estiver ativado. Algo como seguir fará o trabalho
E sim, desculpe por despertar esse tópico antigo, mas achei que poderia contribuir.
fonte
Um forro:
fonte
yes 'd' | mail
funciona como esperado.No UNIX / Linux / Mac OS X, você pode copiar e substituir arquivos, não é? Então, que tal esta solução:
fonte
Se você estiver usando cyrus / sasl / imap no seu servidor de e-mail, uma maneira rápida e eficiente de limpar tudo em uma caixa de correio mais antiga do que o número de dias especificado é usar o comando cyrus / imap ipurge . Por exemplo, aqui está um exemplo de remoção de tudo (tenha cuidado!), Com mais de 30 dias do usuário vleo . Observe que você deve estar logado como usuário do cyrus (administrador de e-mail do 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
fonte
Em vez de usar "d", por que não "p". Não tenho certeza se o "p *" funcionará. Eu não tentei isso. Você pode; no entanto, use o seguinte script "
fonte