【问题标题】:procmail: conditioning on multiple fieldsprocmail:调节多个字段
【发布时间】:2019-12-23 14:01:36
【问题描述】:

我想将我使用“发件人”字段发送给其他人的电子邮件存储到名为“/sent”的文件夹中

所以,我使用:

:0:
*^From.*user@outlook.com
$HOME/Mail/sent/.

而且它过去工作得很好。但是,现在我也从地址转发我的电子邮件:user@outlook.com,发生的事情是电子邮件信封包含标题:Resent-From.*user@outlook.com 所以所有转发的电子邮件邮件正在保存到已发送的文件夹中。

是否可以有双重条件。这就是说,如果 Resent-From 和 From 都有 *user@outlook.com,那么它应该转到已发送文件夹。换句话说,是否可以使用 AND 或 OR 或否定条件。

更新: 提供的解决方案是正确的。我犯了一个错误,因为我忽略了“:”。感谢您的解决方案和耐心。我也学到了很多东西和一些资源,对此我也很感激,

谢谢!

【问题讨论】:

  • ^FromResent-From: 不匹配。您可能在From_ 伪标头上匹配(您的配方我匹配From 之后的冒号);另见iki.fi/era/procmail/mini-faq.html#from--
  • 不理解这个评论。链接重定向到死链接。 My From 与上例中的 Resent-From 不同,但仍会发送到已发送的文件夹。
  • 我不在可以测试的地方,但也许您仍然可以edit 包含带有VERBOSE=yes 的日志摘录来证明这一点?另见iki.fi/era/mail/procmail-debug.html(又名web.archive.org/web/20191008180530/porkmail.org/era/mail/…
  • Return-Path: 确实 表明From_ 行中的信封发件人在这种情况下会匹配您的食谱而没有冒号,即使它没有结束写入已保存的消息。
  • 我已经提供了完整的信封标题。所以,这封电子邮件最终会出现在我的已发送邮件文件夹中,即使它不应该有,因为发件人是别的东西。感谢您提供附加链接,这很有效,我会得到 VERBOSE。

标签: procmail


【解决方案1】:

Procmail 默认完全按照您的要求执行。多个条件将被“与”在一起。第一个失败导致配方被放弃;如果它们都成功,则采取行动。

:0  # second colon removed - don't use lock on directories
* ^From:(.*\<)?user@outlook\.com
* ^Resent-From:(.*\<)?user@outlook\.com
$HOME/Mail/sent/.

还要注意我是如何修改你的正则表达式来加强它的。

要不要,请在条件前添加!。要执行 OR,您可以否定这两个条件,并在“else”部分采取行动(德摩根定律)。

:0
* ! First condition
* ! Other condition
{ } # do nothing
:0E # else, meaning at least one was true
action

当然,如果两个条件都是正则表达式,你可以简单地使用正则表达式或运算符。

:0
* First condition|Other condition
action

【讨论】:

  • 谢谢,所以我只对 MBOX 格式的文件使用锁定,我猜?我曾经使用 MBOX,但现在我使用 .mh 文件夹,所以这对我来说是遗留问题。我对 /dev/null 使用冒号吗?
  • 没有必要锁定/dev/null,或者一般来说,基于目录的文件夹格式。另见iki.fi/era/procmail/mini-faq.html#locking
  • 很抱歉,这个建议不起作用。我仍然在我的已发送文件夹中收到所有转发的邮件。我尝试更改订单,但没有 avial。我究竟做错了什么?我使用 procmail -d %s 作为对 procmail 的调用。看起来最初的建议是做 OR 或忽略第二个。
  • 评论 #2 中的建议链接是错误的。
  • 该链接对我有用。我认为您没有正确描述您的情况;你能告诉你一条你认为不应该同时满足这两个条件的(修剪过的)消息,但究竟是什么?
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多