서버 관리 · 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에 있었으나 알 수 없는 이유로 교체되었습니다. 다른 리눅스 변형의 경우 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.daily로 설정하여 매일 삭제할 만큼 오래된 메일을 확인하도록 하는 것을 제안합니다. 그러나 24시간 미만의 최대 시간을 사용하는 경우 cron.hourly에 배치할 수도 있습니다. 그렇지 않으면 여전히 매일 확인됩니다.

이를 위해 /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

자신의 필요에 맞게 날짜를 변경할 수 있습니다. 파일의 시작 부분에는 스팸 폴더에 보관되는 최대 시간인 “junk_max_hours”라는 두 개의 변수가 주어지고, 휴지통 폴더에 보관되는 최대 시간인 “trash_max_hours”가 주어집니다. 값을 0으로 설정하면 해당 유형의 정리가 비활성화됩니다.

참고: tmpreaper 대신 tmpwatch를 사용해야 하는 경우 cron 파일을 수정하고 “tmpreaper”를 “tmpwatch”로 바꾸는 것을 잊지 마십시오.

결론

실제 운영 서버에서 실행하기 전에 반드시 확인하십시오. 이 튜토리얼은 어떤 보증도 제공하지 않습니다. 신중하게 테스트하십시오!

앞서 설명한 대로 변수를 자신의 필요에 맞게 수정할 수 있습니다.

첫 번째 튜토리얼이 마음에 드시길 바랍니다!

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.