【问题标题】:Don't forward if from certain address如果来自某个地址,请勿转发
【发布时间】:2012-11-13 11:39:19
【问题描述】:

我有一个 procmail 配方,用于存储电子邮件并在更改标题后转发它:

:0c
${DEFAULT}

:0fhw
| formail -i "From: changedemail@address.com"

:0
* !^From:.*\<donforward@domain\.com\>
{
 ! other@recipient.net    # That's exclamation mark, address to forward to
}

现在我只想在不是来自某个地址的情况下转发,但我无法让它工作,不知何故它似乎永远不会匹配。

我需要添加什么才能使其正常工作,并且不要将电子邮件存储两次(我认为这也是在尝试解决方案时发生的情况,我认为因为配方继续进入某种默认行为)

【问题讨论】:

    标签: procmail


    【解决方案1】:

    操作周围的大括号是语法错误。

    :0  # is the address spelled correctly?  not don_T_forward?
    * !^From:.*\<donforward@domain\.com\>
    ! other@recipient.net
    

    (或者,替代但多余的,

    :0
    * !^From:.*\<donforward@domain\.com\>
    {
     :0
     ! other@recipient.net
    }
    

    另外,见下文。)

    但是,这可能实际上永远不会匹配,因为您更改了上一个秘诀中的From: 地址。也许添加一些逻辑来保留原始的From:,或者毕竟将动作组合在大括号中:

    :0c
    ${DEFAULT}
    
    :0
    * !^From:.*\<donforward@domain\.com\>
    {
      :0fhw
      | formail -i "From: changedemail@address.com"
      :0
      ! other@recipient.net
    }
    

    是的,如果消息没有通过任何配方成功传递,默认操作是传递给$DEFAULT。您可能希望反转 :0c 逻辑,以便将原件发送到您的常规收件箱(前提是您没有任何后续配方可以将其发送到其他地方)并转发副本。

    # Drop the $DEFAULT delivery from above
    :0c
    * !^From:.*\<donforward@domain\.com\>
    {
      :0fhw
      | formail -i "From: changedemail@address.com"
      :0
      ! other@recipient.net
    }
    

    对于故障排除,使用VERBOSE=yes 运行是有意义的。在有问题的配方之前添加此指令,然后在消息到达时检查日志输出。有关(更多)更多信息,请参阅http://porkmail.org/era/mail/procmail-debug.html

    【讨论】:

    • 感谢这个非常有用的解决方案。我实现了它并进行了更多调试,因为它还没有工作,我发现电子邮件被另一个帐户转发到此框,导致电子邮件中有两个 From: 标题。我可以以某种方式剥离第一个 From 标头,因为它始终是转发标头中的标头,而不是我想要匹配的原始标头...?
    • 听起来不对,你确定没有一个From(空格)伪标题,只有一个From: 标题吗?第一个是信封发件人;但是,鉴于这种区别,很容易过滤您想要的那个(大概是信封发件人)。如果您有权访问转发帐户,为了稳健性,您可能希望放入一个真正的 RFC822 标头(可能类似于 X-Forwarded-By:)?
    • 你是对的,它没有冒号,所以我想那不是问题所在。不知何故,我的邮件没有被匹配,我真的不明白为什么不匹配。发件人行是这样的:'发件人:“公司名称|支持”',我认为那会匹配..?
    • 如果您已正确复制/粘贴,则您在donforward@domain.com 之间缺少t ...
    • 不幸的是,这只是一个例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    相关资源
    最近更新 更多