fixup after trying out on nine: don't remove large messages after 7 days if they are in the new/ folder (this is old behaviour)

and provide reporting about which mailbox is being scanned.
This commit is contained in:
holger krekel
2025-10-21 21:46:51 +02:00
parent 0931da21b8
commit 8d65770c28
4 changed files with 11 additions and 5 deletions

View File

@@ -105,12 +105,17 @@ class Expiry:
# all to-be-removed files are relative to the mailbox basedir
os.chdir(mbox.basedir)
mboxname = os.path.basename(mbox.basedir)
if self.verbose:
print_info(f"checking for mailbox messages in: {mboxname}")
self.all_files += len(mbox.messages)
for message in mbox.messages:
if message.mtime < cutoff_mails:
self.remove_file(message.relpath)
elif message.size > 200000 and message.mtime < cutoff_large_mails:
self.remove_file(message.relpath)
# we only remove noticed large files (not unnoticed ones in new/)
if message.relpath.startswith("cur/"):
self.remove_file(message.relpath)
else:
continue
changed = True

View File

@@ -123,6 +123,7 @@ def test_expiry_cli_old_files(capsys, example_config, mbox1):
if fnmatch(line, f"removing*{path}"):
break
else:
pytest.fail(f"failed to remove {path}\n{err}")
if path != "new/msg_old_large2":
pytest.fail(f"failed to remove {path}\n{err}")
assert "shouldstay" not in err

View File

@@ -161,9 +161,9 @@ def _install_remote_venv_with_chatmaild(config) -> None:
systemd.service(
name=f"Setup {basename}",
service=basename,
running=True,
running=enabled,
enabled=enabled,
restarted=True,
restarted=enabled,
daemon_reload=True,
)

View File

@@ -5,5 +5,5 @@ After=network.target
[Service]
Type=oneshot
User=vmail
ExecStart=/usr/local/lib/chatmaild/venv/bin/chatmail-expire /usr/local/lib/chatmaild/chatmail.ini --remove
ExecStart=/usr/local/lib/chatmaild/venv/bin/chatmail-expire /usr/local/lib/chatmaild/chatmail.ini -v