我使用 maildrop 脚本直接在邮件服务器上将我的邮件分类到文件夹中,并且我希望它将某些不必要的邮件标记为已读。
不幸的是 maildrop 好像没有这样的命令。
现在我使用这一行将 qmail Maildir 文件夹的最新邮件重命名为2,s
已读状态:
`ls -t "$MAILDIR/.0 Spamfilter.catchall/new" | head -1 | xargs -I {} mv "$MAILDIR/.0 Spamfilter.catchall/new/{}" "$MAILDIR/.0 Spamfilter.catchall/cur/{}:2,S"`
但是,这有时会失败,邮件仍未读。我猜想在执行 mv 之前,当另一封邮件到达时,存在竞争条件。
答案1
在to
执行此操作之前:
FLAGS="S"
但是,棘手的部分是在没有 root 权限的情况下在共享主机上安装 >=2.8.4。我这样做了:从 courier-mta.org 下载“courier-unicode-2.0.tar.bz2”和“maildrop-2.9.2.tar.bz2”:
cd courier-unicode-2.0/
./configure --prefix=/home/user/
make
make install
cd ../maildrop-2.9.2
export CPPFLAGS=-I/home/user/include
export LDFLAGS=-L/home/user/lib/
./configure --prefix=/home/user
make
make install
然后将 .qmail 文件更改为|/home/user/bin/maildrop