Настройка почты · 3 min read · Dec 26, 2025

Автоматическая очистка папок Удаленные и Спам с помощью ISPConfig (с Roundcube + Tmpreaper (Tmpwatch))

Автоматическая очистка папок Удаленные и Спам с помощью ISPConfig (с Roundcube + Tmpreaper (Tmpwatch))

Обзор:

Этот короткий мини-учебник поможет вам настроить автоматическую очистку папок Удаленные и Спам. Большинство (веб)почтовых клиентов (могут) автоматически создавать эти папки. Многие люди не очищают свои почтовые директории, что приводит к значительному увеличению размера папок Спам и Удаленные, а так как ISPConfig (пока что) не может установить хорошие лимиты размера почтовых директорий, альтернативой является очистка этих папок через несколько дней.

Предварительные условия:

Этот учебник предполагает, что вы в настоящее время используете следующую или аналогичную конфигурацию:

  • Linux Debian Etch (v4.0)
  • ISPConfig (v2.2.24 или позже)
  • Make
  • Nano или vi
  • Roundcubemail (установка пакета v0.1.1)
  • Как минимум 1 домен с 1 почтовым ящиком
  • Спам настроен на перемещение в папку вместо удаления (если не настроено, смотрите ссылки)

Если эта конфигурация не соответствует вашей, вам может потребоваться изменить учебник, чтобы он соответствовал вашей конфигурации.

Ссылки:

Учебник по перемещению спама в папку вместо удаления: https://www.howtoforge.com/forums/showthread.php?t=15704
Установка пакета Roundcubemail v0.1.1: http://ispconfig.bb-hosting.org/downloads/roundcube/roundcubemail-0.1.1.pkg

1 - Настройка Roundcubemail для автоматического создания папок Удаленные и Спам

Если вы уже сделали это либо через Roundcubemail, либо другими методами, вы можете пропустить эту главу. Убедитесь, что папки .Trash и .Junk существуют.

Чтобы настроить Roundcubemail для автоматического создания почтовых папок, нам нужно изменить конфигурацию Roundcubemail:

nano /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php

Найдите “$rcmail_config[‘create_default_folders’]” и убедитесь, что он установлен на TRUE, и убедитесь, что конфигурация похожа на:

[...]
// хранить черновик сообщения в этом почтовом ящике
// оставьте пустым, если черновики не должны храниться
$rcmail_config['drafts_mbox'] = 'Drafts';
// хранить спам-сообщения в этом почтовом ящике
$rcmail_config['junk_mbox'] = 'Junk';
// хранить отправленные сообщения в этом почтовом ящике
// оставьте пустым, если отправленные сообщения не должны храниться
$rcmail_config['sent_mbox'] = 'Sent';
// перемещать сообщения в эту папку при их удалении
// оставьте пустым, если они должны быть удалены напрямую
$rcmail_config['trash_mbox'] = 'Trash';
// отображать эти папки отдельно в списке почтовых ящиков.
// эти папки также будут отображаться с локализованными именами
$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
// автоматически создавать вышеуказанные стандартные папки при входе
$rcmail_config['create_default_folders'] = TRUE;
// защищать стандартные папки от переименования, удаления и изменений подписки
$rcmail_config['protect_default_folders'] = TRUE;
[...]

Теперь, когда пользователь входит в систему, почтовые папки будут созданы.

ПРИМЕЧАНИЕ: Это требует, чтобы пользователь вошел в систему, иначе папки Удаленные и Спам просто не существуют и, конечно, не будут очищены!

2 - Установка tmpreaper

Пакет tmpwatch раньше был в менеджере пакетов Aptitude, однако по неизвестным причинам он был заменен. Для других вариантов Linux смотрите tmpwatch.

Чтобы сделать это, введите следующую команду:

apt-get install tempreaper

ВАЖНО: Если вы можете использовать tmpreaper, пропустите главу 3. Если вам нужно использовать tmpwatch, не забудьте изменить файл cron!

Если вы не можете использовать tmpreaper, вы можете скачать и установить tmpwatch следующим образом:

cd /usr/src  
wget http://linux.bononline.nl/linux/tmpwatch/src/tmpwatch-2.9.0.tar.gz  
tar xvzf tmpwatch-2.9.0.tar.gz  
cd tmpwatch-2.9.0  
make  
make install

Спасибо MTvermoes!

3 - Добавление задания cron

Теперь нам нужно добавить задание cron, чтобы система ежедневно проверяла, какие электронные письма подлежат удалению. Мы рекомендуем установить это на cron.daily, чтобы проверять каждый день письма, которые достаточно стары для удаления. Однако вы также можете разместить это в cron.hourly, что необходимо, если вы используете максимальное время менее 24 часов, иначе оно все равно будет проверяться ежедневно.

Чтобы сделать это, перейдите в /etc/cron.daily

cd /etc/cron.daily

Теперь создайте новый файл “clean-mailfolders”

nano clean-mailfolders

И сделайте его таким:

#!/bin/sh
# Время ожидания перед удалением писем из папки Спам (по умолчанию: 7 дней) Установите 0, чтобы отключить.
junk_max_hours=$((24*7))
# Время ожидания перед удалением писем из папки Удаленные (по умолчанию: 30 дней) Установите 0, чтобы отключить.
trash_max_hours=$((24*30))
for domain in /var/www/*
do
  if [ -d "$domain"/user ]
  then
    for user in $domain/user/*
    do
      if [ "$junk_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Junk" ]
        then
          tmpreaper -m $junk_max_hours $user/Maildir/.Junk/{cur,new}
        fi
      fi
      if [ "$trash_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Trash" ]
        then
          tmpreaper -m $trash_max_hours $user/Maildir/.Trash/{cur,new}
        fi
      fi
    done
  fi
done

Вы можете изменить даты, чтобы они соответствовали вашим потребностям. В начале файла заданы 2 переменные с именами “junk_max_hours”, содержащие максимальное количество часов, в течение которых письма в папке Спам хранятся, и “trash_max_hours”, содержащие максимальное количество часов, в течение которых письма в папке Удаленные хранятся. Установка значения на 0 отключит очистку этого типа.

ПРИМЕЧАНИЕ: Если вам нужно использовать tmpwatch вместо tmpreaper, не забудьте изменить файл cron и заменить “tmpreaper” на “tmpwatch”.

Заключение

Убедитесь, что вы проверили это перед тем, как фактически запускать на производственных серверах. Этот учебник не дает никаких гарантий. Будьте разумны, тестируйте!

Вы можете изменить переменные, чтобы они соответствовали вашим потребностям, как описано ранее.

Надеюсь, вам понравится мой первый учебник!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.