是否可以删除主题与正则表达式模式匹配的所有邮件?
例如,要删除消息 1,您可以执行以下操作:
d 1
但是要删除主题以 开头的所有邮件[SPAM]
,我不能这样做:
d -s "^\[SPAM\].*$"
答案1
我正在回答这个问题,以防有人遇到同样的问题。
似乎没有任何方法可以通过使用模式匹配来进行批量删除mail
。另一种方法是使用mutt
邮件客户端,它具有以下功能:
D \[SPAM\]
感谢@thrig 和@dirkt 提出替代方案。
答案2
根据“man mail”,有很多不同的模式来指定诸如“d”之类的删除命令将处理的邮件。对于询问的主题行,您可以使用
(subject string)
All messages that contain string in the Subject: field.
在邮件命令中你可以写:
& d (subject Happy Birthday)
这将删除主题中包含字符串“生日快乐”的每封邮件。其他字段和不同日期相关标准也有模式(已使用“Heirloom Mail version 12.4 7/29/08”进行测试。)
答案3
我一直在寻找相同的东西但没有成功,所以我决定尝试这样的:
echo 'f 1-$' | mail -N | grep 'SPAM' | awk '{print $1}'
或者print $0
查看完整的标头以显示带有字符串“SPAM”的邮件号码。
所以如果你认为可以的话你可以删除所有这些。
echo 'd #1 #2 #3 ...' | mail -N
或者制作一个完整的脚本。