web-dev-qa-db-ja.com

postfix / procmail-procmailrcでの重複メールの防止

サーバーにPostfixを追加し、procmailとカスタマイズされたシェルスクリプトを使用して、ローカルドメイン/マシン上のユーザーアカウントの1つに対する受信メールを処理しています。 ([email protected]

メールに受信者が1人しかいない場合は、すべて正常に機能していましたが、メールリストに別の受信者を追加するとすぐに..同じメッセージが2回表示されます。 (例:work + 123 @ doamin.com、work + 456 @ domain.comにメッセージを送信する)

Main.cfには特別な構成はありませんが、次のようになります。

mailbox_command = /usr/bin/procmail -a "EXTENSION"

および.procmailrcは次のとおりです。

TO=`formail -xTo:`
SUBJECT=`formail -xSubject: \
| expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`
SENDER=`formail -xFrom: \
| expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`
BODY=`formail -I "" \
| expand | sed -e '1,/^$/ d' -e '1,/^$/ d'`
BODY=`formail -I "" `
SENDER=`formail -rtzxTo:`
:0 
| $HOME/bin/work.sh "$TO" "$BODY"

私はprocmailrcでこの問題を管理しようと考えていましたが、この場合の知識は非常に低いです。

1
atari83

まあ、明らかに解決策は重複したメッセージIDをフィルタリングするためのロック/キャッシュファイルです:

:0 Wh: msgid.lock
| formail -D 8192 msgid.cache

みんな、ありがとう :)

2
atari83