Удалите диапазон сообщений электронной почты, используя команду «mail»

10

У меня есть около 1k + почты в почтовом ящике (старый cronjob stdout). Как мне удалить их навалом?

Я использую Solaris 8, и у меня есть только mailдоступный клиент pineили нет muttили аналогичный клиент на основе пользовательского интерфейса.

Встроенная справка и справочная страница дают только d #для удаления определенной почты. Я пытался, например, d 1 - 100но не повезло. И мне не хочется делать d1000 раз.

Есть идеи, как очистить этот почтовый ящик? Я на самом деле хотел бы удалить все письма старше x дней.

GWu
источник

Ответы:

17

Хотя mailможет быть не в состоянии, и у вас нет, pineили mutt, вероятно, у вас есть mailx. А mailxможет d 5-10или d *.

bahamat
источник
2

Если вы хотите выполнить d 1сквозную операцию d 100, вы можете сгенерировать эту последовательность команд и направить ее напрямую mail:

i=1; while [ $i -le 100 ]; do echo d $i; i=$(($i+1)); done | mail
Джим Пэрис
источник
У меня нет Solaris здесь, чтобы проверить. Если вы запустите d 1, перенумеровывает ли последующие электронные письма? Если это так, вам нужно либо вернуться назад, либо запустить d 1100 раз.
Жиль "ТАК - перестань быть злым"
2

Следующее поможет вам прочитать почту в течение 1 секунды, удалить письмо и перейти к следующему. Если все письма были удалены, цикл прекратится.

Хотите еще времени? Измените сон на 2 или более. Хотите быстрее? Замените сон 1 фиктивной командой.

while (echo dq |mail) do sleep 1 ;done
Герт
источник