Como posso enviar / var / mail / root novamente?


12

Por meio de alguma configuração incorreta, recebi muitos emails em / var / mail / root e / var / mail / www-data

Como posso "repetir" esses arquivos e enviar cada email outra vez?

Respostas:


17

formal , parte do procmail (e provavelmente já está disponível no seu sistema) pode pegar uma caixa de correio, dividi-la em mensagens e, em seguida, executar um comando em cada uma. Na página do manual:

   -s   The input will be split up into separate mail messages, and  piped
        into  a  program  one  by  one (a new program is started for every
        part).  -s has to be the last option specified, the first argument
        following  it  is  expected to be the name of a program, any other
        arguments will be passed along to it.  If you  omit  the  program,
        then  formail  will  simply  concatenate the split mails on stdout
        again.  See FILENO.

Então você pode fazer o que eu acho que você quer assim:

  formail -s /usr/sbin/sendmail -oi -t < /var/mail/root

3
Mas também o que Kriss disse re: abordando; Esta solução pressupõe que você corrigiu seus aliases locais ou algo para enviar as mensagens para outro lugar que não seja de volta para / var / mail / root. Você pode, por exemplo, fazer "formail -s / usr / sbin / sendmail -oi you@somewhere.else" para redirecionar todas as mensagens.
Larsks 02/12/2009

assumindo que www-data e root agora estão configurados corretamente, algo como "para foo in ls /var/mail; faça formal -s / usr / sbin / sendmail -oi $ foo <./$foo; done" deve fazer um loop em cada arquivo e entregar localmente ..
Tom H

3
mutt -f /var/mail/www-data

Então dentro de vira-lata ...

T.*
;b

T o coloca no modo de marcação e. * Marca todas as mensagens. O ponto-e-vírgula aplica o próximo comando a todas as mensagens marcadas e, por fim, b "devolve" as mensagens para um endereço solicitado.

De memória, acho que ou

D.*

ou

T.*
;d

Esvaziará a caixa de correio.


0

Os arquivos de caixa de correio / var / spool / mail / xxx unix são arquivos de texto simples em que as mensagens são mantidas em seqüência. Cada mensagem de e-mail começa com uma linha "De" (que não faz parte da mensagem) com remetente e data de recepção e, em seguida, você recebe os cabeçalhos e o corpo do e-mail.

Basicamente, você pode simplesmente fazer um loop no arquivo, detectando tais linhas From e extrair todas as mensagens e enviá-las usando ferramentas como o módulo python smtp ou o módulo perl Net :: SMTP da cpan.

Se o destino for outra caixa de correio local, basta anexar as mensagens (incluindo a linha De). Você pode até anexar toda a caixa de correio raiz a outra caixa de correio se não se importar também em receber mensagens realmente direcionadas para raiz.

Eu deveria ter alguns scripts que fazem isso e publicarei exemplos, se você quiser.

O problema pode ser o de obter o destino real da mensagem, porque, se terminarem na caixa de correio raiz, provavelmente serão direcionados para a raiz desde o início.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.