mutt:标记为已读并删除

use*_*001 6 email mutt trash

我丢弃了一些消息而不阅读它们。然而,在删除上述邮件后,我很快就收到了垃圾桶中存在未读邮件的提醒。

有没有办法:

  • set beep_new在垃圾桶中发现新消息时禁用警报 ( );或者
  • 同时将消息标记为已读并删除它?

我想前者可以用垃圾文件夹钩子来实现,后者可以用宏来实现。但是,在后者的情况下,在将消息 ( Wn) 或整个线程 ( ^R)标记为已读后,所选条目可能会更改,也可能不会更改,具体取决于邮件在文件夹中的位置。

然后必须使用条件来确定如何通过使用条目导航命令来恢复选择。恢复选择后,可以删除该消息。根据官方文档,配置文件不支持条件,因此基于宏的解决方案可能涉及通过 shell 脚本进行管道传输。

也许我忽略了这个问题的更简单的解决方案?

May*_*yeu 6

要同时将消息标记为已读并删除它,您可以使用set resolve=nobefore 命令来避免跳转到下一条消息。这避免了必须检查条件等。完成操作后,您的光标将停留在原位。

例如,在将邮件移动到存档邮件目录之前,我使用以下内容将其标记为已读:

macro index,pager a ":set confirmappend=no delete=yes resolve=no\n<clear-flag>N<tag-prefix><save-message>=archive\n:set confirmappend=yes delete=ask-yes resolve=yes\n<next-undeleted>"
Run Code Online (Sandbox Code Playgroud)

这会:

  • 在动作之前设置一些值,包括resolve=no避免跳转到下一条消息
  • 清除未读标志: <clear-flag>N
  • 将消息保存到我的存档中: <tag-prefix><save-message>=archive
  • 将价值设置回应有的水平,包括 resolve
  • 跳转到下一条未删除的消息: <next-undeleted>

因此,要标记为已读和删除,应该可以这样操作:

macro index,pager d ":set confirmappend=no delete=yes resolve=no\n<clear-flag>N<tag-prefix><delete-message>:set confirmappend=yes delete=ask-yes resolve=yes\n<next-undeleted>"
Run Code Online (Sandbox Code Playgroud)


cas*_*cas 1

最明显的方法是在 mutt 检查新邮件的邮箱列表中不包含“垃圾箱”。

即不要将垃圾桶文件夹添加到邮箱中。

例如,如果您使用以下内容生成邮箱列表:

邮箱\
  /var/spool/mail/用户名 \
  `查找 ~/Mail -type f | xargs`

grep -v trashcan |然后在 xargs 之前添加,如下所示:

`查找 ~/Mail -type f | grep -v 垃圾桶 | xargs`