1

ヘッダーを変更した後、メールを保存して転送する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
}

今は特定のアドレスからではない場合にのみ転送したいのですが、動作させることができず、どういうわけか一致しないようです。

それを機能させるために何を追加する必要がありますか?また、電子メールを2回保存しないでください(これは、ソリューションを実験したときにも起こりました。レシピはある種のデフォルトの動作を続けたためだと思います)

4

1 に答える 1

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を参照してください。

于 2012-11-14T08:11:20.900 に答える