Debian邮件回收管理实现指南
一、目标与总体思路
二、发信队列的回收与排障
三、本地邮箱与 Maildir 的回收策略
#!/usr/bin/env bash
MBX=/var/mail/alice
ARC=/archive/alice-$(date +%F).mbox.gz
mkdir -p "$(dirname "$ARC")"
# 导出30天前邮件并压缩归档
find "$MBX" -type f -mtime +30 -print0 | xargs -0 grep -EzZ '^From ' | \
gzip > "$ARC"
# 截断原 mbox(保留最近邮件)
awk '/^From /{exit} {print}' "$MBX" > "$MBX.tmp" && mv "$MBX.tmp" "$MBX"
#!/usr/bin/env bash
MAILDIR=/home/alice/Maildir
DAYS=90
MAX=1000
SIZELIMIT=10485760 # 10MB
# 删除过期邮件
find "$MAILDIR"/cur "$MAILDIR"/new -type f -mtime +$DAYS -delete
# 目录内超限时按时间删除最旧文件
for d in "$MAILDIR"/cur "$MAILDIR"/new; do
cnt=$(find "$d" -type f | wc -l)
if (( cnt > MAX )); then
find "$d" -type f -printf '%T@ %p\n' | sort -n | head -n $((cnt - MAX)) | cut -d' ' -f2- | xargs rm -f
fi
done
# 清理超大邮件(可选)
find "$MAILDIR" -type f -size +${SIZELIMIT}c -delete
四、日志与 spool 空间的回收
/var/log/mail.log {
daily
rotate 30
compress
missingok
postrotate
systemctl reload postfix || true
systemctl reload dovecot || true
endscript
}
sudo journalctl --vacuum-time=7d
五、落地配置与运维建议
sudo apt update
sudo apt install -y postfix dovecot-imapd dovecot-pop3d
sudo systemctl enable --now postfix dovecot