L-Core Mail Quota Manager 作業記録

Version 1.0 / 2026-11-14 / 設計・引き継ぎ記録

1. 目的

POP3等のクライアントでサーバー上のメールが削除されず、メールボックス容量が逼迫する事態に備える。利用者への事前通知、返信による中止、NASへの検証済み退避を経て、安全に容量を回復する。

2. 確定した基本方針

3. 現行パイロット

項目V33V34
対象ppal_sato@yoc.jpn.commaeyama@tohoku-butsuryu.co.jp
モードIMAP拡張:サブフォルダーを含めるIMAP標準:INBOX、Spam、Junkを対象とし、Sentを保護
試験時クォータ500 MiB300 MiB
2026-11-06の削除結果511通 / 125,314,415バイト2,125通 / 86,183,103バイト
2026-11-14手動recalc後56%58%
既存状態COMPLETEDCOMPLETED

両パイロットのバックアップと削除は完了済み。既存案件を再実行したり、過去分の通知を新規送信したりしない。

4. 現行コードの問題

  1. 削除後に doveadm quota get するだけで、クォータ再計算がない。
  2. 再計算・70%未満確認前に COMPLETED を記録してしまう。
  3. 管理者への成功・失敗通知がない。
  4. 既存の COMPLETED 状態により、次回80%超過時の新規案件を開始できない。
  5. ユーザーごとにPythonスクリプトとcronを増やす方式であり、共通化が必要。

5. V35の目標構成(未完成)

機能設計
実行共通エンジン1本、朝8時・正午の共通cron計2行を想定
対象管理ユーザー別設定を分離。新規ユーザーの監視対象化と自動削除許可は区別
削除モードPOP3、IMAP標準、IMAP拡張
安全性NASマウント検証、SHA256照合、返信確認、変更されたMaildirファイルの拒否
状態管理案件単位の通知・待機・中止・削除・完了・障害記録。重複送信と二重削除を防ぐ
終了判定quota recalc → 実使用率70%未満 → COMPLETED → 管理者通知
注意:V35統合版は設計段階。次回80%超過の自動再開、削除途中の障害復旧、通知再試行の完全な検証は未完了。候補コードの構文検証だけで本番投入しない。

6. ディレクトリ構成

/root/lc_mail_quota/
  bin/       実行コード
  config/    アカウント設定(今後)
  state/     新版状態管理(今後)
  logs/      ログ(今後)
  backup/    退避・バックアップ
  archive/   旧版スクリプトの保存

既存の状態ファイルは /root/lc_mail_quota_state/ に残す。NAS保存先は /mnt/nas_rsync/mail_archive/。旧状態の移動や初期化は行わない。

7. 現行cron(切替前)

/etc/cron.d/lc-mail-quota-manager
  08:00 V33 morning
  12:05 V33 noon
/etc/cron.d/lc-mail-quota-manager-v34
  08:00 V34 morning
  12:05 V34 noon

旧cronは自動的には消えない。新版が十分に検証されてから旧cronを停止し、共通cronへ切り替える。停止中の監視空白に注意する。

8. 今後の作業

  1. V33/V34の削除対象の違いを維持した共通エンジンを作成。
  2. アカウント設定と監視対象の登録方法を決定。
  3. 通知・返信・期限・バックアップ・削除・再計算・結果通知を模擬環境で検証。
  4. 削除途中のクラッシュ、NAS切断、部分削除、通知失敗、再実行の復旧試験。
  5. 既存COMPLETEDを保護しながら、新規80%超過を扱う案件更新方式を実装。
  6. 本番移行手順とロールバック手順を確定後、cronを切り替える。

9. 作業上の注意