メール管理 · 1 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 installMTvermoesに感謝!
3 - cronジョブを追加する
システムが毎日どのメールが削除される必要があるかを確認するために、cronジョブを追加する必要があります。これを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”という名前の2つの変数があり、迷惑メールフォルダに保持される最大時間を含み、”trash_max_hours”はゴミ箱フォルダに保持される最大時間を含みます。値を0に設定すると、そのタイプのクリーニングが無効になります。
注意: tmpreaperの代わりにtmpwatchを使用しなければならない場合は、cronファイルを修正し、”tmpreaper”を”tmpwatch”に置き換えるのを忘れないでください。
結論
実際に本番サーバーで実行する前に、これを確認してください。このチュートリアルには一切の保証はありません。賢く、テストしてください!
以前に説明したように、変数を自分のニーズに合わせて変更できます。
私の最初のチュートリアルを気に入っていただけると幸いです!
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。