我注意到 dovecot 会在 30 天后自动删除我的邮件。这对我来说是不希望出现的行为,但我不知道如何更改它。
我检查了自动删除配置,但是它已被禁用:
# doveconf | grep expunge
autoexpunge = 0
autoexpunge_max_mails = 0
autoexpunge = 0
autoexpunge_max_mails = 0
autoexpunge = 0
autoexpunge_max_mails = 0
autoexpunge = 0
autoexpunge_max_mails = 0
autoexpunge = 0
autoexpunge_max_mails = 0
我仔细查看了配置文件,但没有找到可以设置此类设置的地方。你能帮我找到电子邮件被删除的原因吗,以及如何解决此问题。
我使用 debian stretch 与 dovecot + postfix + postgres,大部分配置均采用默认。
更新:
我发现电子邮件消失的原因是/etc/cron.daily/sa-learn
包含以下摘录的脚本:
MAILDIR=/home/mailboxes/maildir/
USERS=$(ls /home/mailboxes/maildir/ | grep -v $SPAMTRAP)
SPAM=".Junk"
# ...
echo Sync SA base >> $log 2>&1
sa-learn --sync >> $log 2>&1
if [ $? -eq 0 ]; then
for user in $USERS ; do
maildir=$MAILDIR/$user
echo "deleting spam for $u older than $cleanafter" >> $log 2>&1
find $maildir -type f -mtime +$cleanafter -exec rm {} \;
done
else
echo "sa-learn wasn't able to sync. Something is broken. Skipping spam cleanup"
fi
我不确定sa-learn
脚本来自哪里,但看起来这种行为存在很大缺陷。
答案1
如果确实是 dovecot,您应该会在日志中看到这一点。否则,请检查它是否不是您的邮件客户端。提高日志的详细程度,并在您注意到邮件丢失时检查它们。以下是正确的文档:https://doc.dovecot.org/admin_manual/logging/
当然,不要犹豫,分享您的发现。