Jak mogę ponownie wysłać / var / mail / root?

12

Przez pewną błędną konfigurację mam dużo e-maili w / var / mail / root i / var / mail / www-data

Jak mogę „zapętlić” te pliki i wysłać każdą pocztę innym razem?

Max
źródło

Odpowiedzi:

17

formail , część procmaila (i prawdopodobnie już dostępna w twoim systemie) może wziąć skrzynkę pocztową, podzielić ją na wiadomości, a następnie uruchomić polecenie na każdym z nich. Ze strony podręcznika:

   -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.

Możesz więc zrobić to, co według mnie chcesz:

  formail -s /usr/sbin/sendmail -oi -t < /var/mail/root
Larsks
źródło
3
Ale także to, co powiedział Kriss: adresowanie; to rozwiązanie zakłada, że ​​naprawiłeś lokalne aliasy lub coś, co pozwala wysyłać wiadomości w innym miejscu niż z powrotem do / var / mail / root. Możesz na przykład zrobić „formail -s / usr / sbin / sendmail -oi [email protected]”, aby przekierować wszystkie wiadomości.
larsks
zakładając, że www-data i root są teraz poprawnie skonfigurowane, coś w rodzaju „for foo in ls /var/mail; formail -s / usr / sbin / sendmail -oi $ foo <./$foo; done” powinno zapętlić każdy plik i dostarczyć lokalnie ..
Tom H
3
mutt -f /var/mail/www-data

Następnie w mutt ...

T.*
;b

T przełącza go w tryb tagowania, a. * Oznacza wszystkie wiadomości. Średnik stosuje następne polecenie do wszystkich oznaczonych wiadomości, a na koniec b „odbija” wiadomości pod adres, o który poprosi.

Z pamięci też tak myślę

D.*

lub

T.*
;d

Następnie opróżni skrzynkę pocztową.

James Green
źródło
0

Pliki skrzynki pocztowej / var / spool / mail / xxx unix są prostymi plikami tekstowymi, w których wiadomości są przechowywane w sekwencji. Każda wiadomość zaczyna się od wiersza „Od” (taht nie jest częścią wiadomości) z nadawcą i datą odbioru, następnie otrzymujesz nagłówki, a następnie treść wiadomości.

Zasadniczo możesz po prostu zapętlić plik, wykrywając takie linie From i wyodrębnić wszystkie wiadomości, a następnie wysłać je za pomocą narzędzi takich jak moduł python smtp lub moduł perl Net :: SMTP z cpan.

Jeśli celem jest inna lokalna skrzynka pocztowa, możesz po prostu dołączyć do niej wiadomości (w tym linię From). Możesz nawet dołączyć całą główną skrzynkę pocztową do innej skrzynki pocztowej, jeśli nie przejmujesz się także otrzymywaniem wiadomości naprawdę ukierunkowanych na root.

Powinienem mieć kilka skryptów, które to robią i opublikuję przykłady, jeśli chcesz.

Problemem może być uzyskanie prawdziwego celu wiadomości, ponieważ jeśli zakończyły się one w głównej skrzynce pocztowej, prawdopodobnie były od samego początku celem rootowania?

Kriss
źródło