Как я могу отправить / var / mail / root снова?

12

Из-за неправильной настройки у меня много писем в / var / mail / root и / var / mail / www-data

Как я могу «зациклить» эти файлы и отправить каждое письмо в другой раз?

Максимум
источник

Ответы:

17

formail , часть procmail (и, возможно, уже доступна в вашей системе), может взять почтовый ящик, разбить его на сообщения и затем запустить команду для каждого из них. Со страницы руководства:

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

Таким образом, вы можете делать то, что я думаю, что вы хотите, как это:

  formail -s /usr/sbin/sendmail -oi -t < /var/mail/root
larsks
источник
3
Но также то, что сказал Крисс о: адресации; это решение предполагает, что вы исправили свои локальные псевдонимы или что-то, что отправляло сообщения куда-то, кроме обратно в / var / mail / root. Вы можете, например, сделать «formail -s / usr / sbin / sendmail -oi you@somewhere.else», чтобы перенаправить все сообщения.
Жаворонки
при условии, что www-data и root теперь правильно настроены, что-то вроде «for foo in ls /var/mail; do formail -s / usr / sbin / sendmail -oi $ foo <./$foo; done» должно зацикливать каждый файл и доставлять локально ..
Том Х
3
mutt -f /var/mail/www-data

Тогда внутри дурак ...

T.*
;b

T переводит его в режим тегирования, а. * Тегирует все сообщения. Точка с запятой применяет следующую команду ко всем помеченным сообщениям, и, наконец, b «перенаправляет» сообщения на адрес, который будет запрашиваться.

По памяти я думаю либо

D.*

или

T.*
;d

Затем очистите почтовый ящик.

Джеймс Грин
источник
0

Файлы почтовых ящиков / var / spool / mail / xxx unix представляют собой простые текстовые файлы, в которых почтовые сообщения хранятся в определенной последовательности. Каждое почтовое сообщение начинается со строки «От» (которая не является частью сообщения) с отправителем и датой получения, затем вы получаете заголовки почты, а затем тело письма.

По сути, вы можете просто зациклить файл, обнаружив такие строки From, и извлечь все сообщения, а затем отправить их с помощью таких инструментов, как модуль python smtp или модуль perl Net :: SMTP из cpan.

Если целью является другой локальный почтовый ящик, вы можете просто добавить к нему сообщения (включая строку «От»). Вы можете даже добавить весь корневой почтовый ящик к другому почтовому ящику, если вас не волнует также получение сообщений, действительно предназначенных для root.

У меня должны быть некоторые сценарии, которые делают это и будут публиковать примеры, если хотите.

Проблема может заключаться в том, чтобы получить реальную цель сообщения, потому что, если они заканчивались на корневом почтовом ящике, они, вероятно, были нацелены на root с самого начала?

Kriss
источник