送信できずにキューに詰まってたメールを検索

Postfixのmaillogで確認しました。 そのまま他の環境で動くかは不明。

## Concat all existing maillogs
# cat /var/log/maillog* > maillogs

## deferred_mids: status=deferred なメッセージIDリスト
# cat maillogs | grep status=deferred | cut -d " " -f6 | tr -d ":" | sort | uniq > deferred_mids

## deferred_not_sent_mid: deferred_midsのうち、status=sentになってるメッセージIDを除去したメッセージIDリスト
# cat maillogs | grep status=sent | grep -f deferred_mids | cut -d " " -f6 | tr -d ":" > deferred_sent_mid
# cat deferred_mids | grep -v -f deferred_sent_mid > deferred_not_sent_mid

## not_sent_emails: 送信できていないfromアドレスリスト
# cat maillogs | grep from | grep -f deferred_not_sent_mid | egrep -o "from=<.+>" | cut -d"=" -f2 | tr -d "<>" | sort | uniq > not_sent_emails

# cat not_sent_emails
hoge@example.com
fuga@example.net
piyo@example.jp
...

grep -f file で複数キーワード指定なgrepができて素晴らしいです。

$ man grep
...
     -f file, --file=file
             Read one or more newline separated patterns from file.  Empty pattern lines match every input line.  Newlines are not considered
             part of a pattern.  If file is empty, nothing is matched.
...