Як я можу знову надіслати / 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

3
Але також те, що сказав Кріс щодо: звернення; це рішення передбачає, що ви виправили локальні псевдоніми або щось, щоб надіслати повідомлення куди-небудь, крім повернення в / var / mail / root. Наприклад, ви можете зробити "formail -s / usr / sbin / sendmail -oi you@somewhere.else", щоб перенаправити всі повідомлення.
larsks

якщо припустити, що www-дані та root тепер правильно налаштовані, щось на зразок "for foo in ls /var/mail; 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 - це прості текстові файли, у яких поштові повідомлення зберігаються в послідовності. Кожне поштове повідомлення починається з рядка "Від" (taht не є частиною повідомлення) із відправниками та датою отримання, потім ви отримуєте заголовки пошти, а потім тіло пошти.

В основному, ви можете просто зафіксувати на файлі виявлення таких з рядків та витягнути всі повідомлення, а потім надіслати їх за допомогою таких інструментів, як модуль smtp python або модуль perl Net :: SMTP з cpan.

Якщо ціль - це ще одна локальна поштова скринька, ви можете просто додати до неї повідомлення (включаючи рядок "Від" Ви можете навіть додати всю кореневу поштову скриньку до іншої поштової скриньки, якщо вам не байдуже також отримання повідомлень, дійсно націлених на root.

У мене повинні бути кілька сценаріїв, які це роблять, і, якщо ви хочете, розміщувати приклади.

Проблема може полягати в тому, щоб отримати реальну ціль повідомлення, тому що якщо вони закінчилися в кореневій поштовій скриньці, вони, ймовірно, були спрямовані на корінь з самого початку?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.