Как я постоянно удаляю электронные письма в sendmail очереди и мешаю им возвращаться?

Я предполагаю, что Вы используете то поле в качестве своего интернет-маршрутизатора NAT с помощью iptables NAT - очевидно, если это не так затем это не поможет, иначе Вам, вероятно, будет нужно что-то как:

iptables -t nat -I POSTROUTING -s xxx.zzz.109.0/24 -d xxx.yyy.159.36 -j ACCEPT

Это пропустит исходную сетку, которую Вы делаете для пакетов, перемещающихся изнутри во внешнюю сторону для чего-либо предназначенного для внешнего IP того сервера.

18
задан 3 June 2010 в 04:19
5 ответов

Сообщения, которые были отправлены или пытаются быть отправленными, хранятся в /var/spool/mqueue. Сообщения, что Sendmail не попытался поставить в очередь все же, могут быть найдены в /var/spool/mqueue-client.

Так попробуйте это (я предполагаю, что Вы хотите избавиться от всех сообщений в очереди):

  • Остановите sendmail
  • rm /var/spool/mqueue/*
  • Если Вы хотите удалить сообщения в ожидании, rm /var/spool/mqueue-client/*.
  • Запустите sendmail

Это очистит нашу Вашу папку (папки) очереди, пока система не получит другое сообщение. Можно проверить дважды путем выполнения mailq (обе папки очереди), или sendmail -bp (только папка очереди).

Примечание: С большинством дистрибутивов Linux можно запустить/остановить сервисы с с service sendmail <start|stop|restart> или /etc/init.d/sendmail <start|stop|restart>. Обе опции имеют много других флагов состояния, которые могут наблюдаться путем ввода в команде и обслуживании без флагов состояния.

28
ответ дан 2 December 2019 в 20:20
  • 1
    Он сказал, что уже сделал это, но сообщения вновь появились... –  Massimo 9 June 2010 в 16:33
  • 2
    Но не останавливаясь sendmail сначала, that' s точка. –  weeheavy 9 June 2010 в 16:40
  • 3
    Ну, кажется, что Вы, возможно, ударили на шаг, что я отсутствовал. –  Steven Oxley 10 June 2010 в 20:06

Я не думаю, что это - работа сценария крона, это, более вероятно, будет проблема приложения или что-то связанное с самим sendmail; так или иначе, для исключения любого задания крона, делающего это, можно просто остановиться crond некоторое время и посмотрите, продолжает ли это происходить.

0
ответ дан 2 December 2019 в 20:20

Я имел эту ту же проблему и нашел, что было 2 папки с сообщениями с очередями. Папка,/var/spool/clientmqueue/, имела сообщения, которые заканчивались в/var/spool/mqueue/, если им не удалось быть поставленными. Удаление файлов от обеих папок было необходимо для решения проблемы.

комната-f/var/spool/clientmqueue /* комната-f/var/spool/mqueue /*

4
ответ дан 2 December 2019 в 20:20

Вы будете часто находить, что предложение удаляет файлы из mqueue каталога Sendmail с, например, rm /var/spool/mqueue/* или хуже (rm -rf и т.д.). По моему скромному мнению, это просто опасный. Это будет работать во многих случаях, но я рекомендую закрепить Ваши ремни безопасности. Просто удаление всех файлов от mqueue могло бы удалить законные сообщения.

Остановить Sendmail прежде, чем удалить поставленные в очередь сообщения - хороший совет особенно, если много сообщений должны быть удалены. Однако, если только несколько сообщений должны быть удалены или если очередь очищена регулярно, например, посредством задания крона нет на самом деле никакой потребности остановить Sendmail. В худшем случае будет повторно поставлено в очередь одно из сообщений, который будет почти наверняка удален, когда Вы попробуете еще раз.

Наоборот, останавливая Sendmail (например, в Ubuntu с service sendmail stop) не могло бы быть достаточным. Даже когда остановлено некоторые (дочерние) процессы могли бы все еще работать. Нужно было бы ожидать, пока они не закончили (рекомендуемый), или уничтожьте их.

Для безопасного удаления сообщений из mqueue, Вам нужны идентификаторы очереди сообщений. Идентификаторы показывают в журнале после "см-mta [...]":. идентификаторы из Вашей выборки журнала o530SlbK009365, o4VHn3cw003597... Для каждого из идентификаторов 2 файла хранятся в mqueue, одном запуске с "QF", другом запуске с "df".

mailq обычно используется для списка содержания очереди. Это показывает идентификаторы в первом столбце. Кроме того, необходимо консультироваться mailqвывод, потому что это также показывает, активно ли сообщение/в настоящее время быть обработанным. Например.

-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------
oBDDuKAB023946*    1058 Mon Dec 13 14:56 <vfn-l-bounces+so=example.com@fam.tuwi
                 (Deferred: 450-4.2.1 The user you are trying to contact is re)
                                         <so@example.com>
oBAEMuV8000429     1058 Fri Dec 10 15:22 <vfn-l-bounces+sby=example.com@fam.tuw
                 (Deferred: 450-4.2.1 The user you are trying to contact is re)
                                         <so@example.com>

В этом примере сообщение с идентификатором oBDDuKAB023946 в настоящее время обрабатывается, показывается добавленной звездочкой. Другие сообщения безопасны быть удаленными. Например, для удаления сообщения с идентификатором oBAEMuV8000429 использовать

rm /var/spool/mqueue/{d,q}foBAEMuV8000429

Более универсальный подход для удаления поставленных в очередь сообщений обеспечивается Brandon Hutchinson в Удалении почты от почтовой очереди. Brandon также включает сценарии для удаления сообщений на основе доменной части, адрес электронной почты и т.д. Сценарии Brandon очень полезны для регулярной очистки или массового удаления.

Тем не менее, даже сценарии Brandon не заботятся о состоянии сообщений. Однако легко добавить. Включайте в начале его сценариев

# Get current mailq status
my $mailq = `mailq`;

Затем в начале sub "требуемой" стандартной программы добавляют проверку для пропуска активных сообщений, например, с

# skip if file is currently processed by MTA
if ($mailq =~ /\n$queue_id\*/) {
   $debug && print "$queue_id is locked.\n";
   last;
}

HTH. И, не забудьте делать резервные копии :-)

9
ответ дан 2 December 2019 в 20:20

Мне удалось это сделать с помощью этого сценария bash

for i in `sudo ls /var/spool/mqueue`
do
    sudo rm -rv `echo /var/spool/mqueue/$i`
done
0
ответ дан 2 December 2019 в 20:20

Теги

Похожие вопросы