我想使用“发件人”字段将我发送给其他人的电子邮件存储到名为“ / sent”的文件夹中
所以我用:
:0:
*^From.*user@outlook.com
$HOME/Mail/sent/.
它曾经可以正常工作。但是,现在我也从以下地址转发电子邮件:user@outlook.com,这是因为电子邮件信封中包含标题:Resent-From.*user@outlook.com,因此所有转发的电子邮件都邮件被保存到发送的文件夹中。
是否可能有双重条件。这就是说,如果Resent-From和From都具有*user@outlook.com,则应该转到已发送文件夹。换句话说,可以使用“与”或“或”或“否定”条件。
更新: 所提供的解决方案是正确的。 我由于忽略了“:”而犯了一个错误。感谢您的解决方案和耐心等待。我也学到了很多东西,了解了很多资源,对此我也表示感谢,
谢谢!
答案 0 :(得分:0)
默认情况下,Procmail会完全按照您的要求进行操作。多个条件将被与在一起。第一个失败导致配方被放弃;如果它们全部成功,就会采取措施。
:0 # second colon removed - don't use lock on directories
* ^From:(.*\<)?user@outlook\.com
* ^Resent-From:(.*\<)?user@outlook\.com
$HOME/Mail/sent/.
还请注意我如何修改您的正则表达式以使其更紧密。
要不执行此操作,请在条件前面添加!
。要执行“或”操作,您可以同时消除这两个条件,并在“其他”部分(摩根定律)采取行动。
:0
* ! First condition
* ! Other condition
{ } # do nothing
:0E # else, meaning at least one was true
action
当然,如果两个条件都是正则表达式,则只需使用正则表达式或运算符即可。
:0
* First condition|Other condition
action