I suspect what you're after is auto cleaning of the mail queue.  Here are a couple of things I do that may help...
<div><br></div><div>this (theoretically) issues a call to the 'postsuper' command with a single parameter until it exhausts the list of problematic email entries in the queue.</div><div><br></div><div>cron entry (run every 10 mins):</div>
<div><div># Delete MAILER-DAEMON entries from mail queue</div><div>*/10 * * * * /etc/postfix/scripts/queue-cleanup.sh</div><div><br></div><div>[me@smtp me]% less /etc/postfix/scripts/queue-cleanup.sh </div><div>#!/bin/bash</div>
<div><br></div><div>/usr/bin/mailq |grep --color=none MAILER-DAEMON | awk '{print $1}' | tr -d '*!' | xargs -n 1 postsuper -d >/dev/null 2>&1</div><div>--------------------------------------------------------------------------------</div>
<div><br></div><div>And this let's me know which messages are being HELD (I hold some based on a criterion).</div><div><br></div><div><div>[me@smtp me]% crontab -l|grep -i mailq</div><div>*/10 * * * * /home/users/me/bin/monitor_mailq.sh</div>
<div>[me@smtp me]% less ./bin/monitor_mailq.sh </div><div><br></div><div><br></div><div>------------------------------------------------------------------------------------</div><div>#!/bin/bash</div><div><br></div><div># This script will monitor the mail queue for messages on HOLD</div>
<div># and e-mail me if/when it finds one.</div><div># 1-April-2005  Godwin</div><div><br></div><div>recipient=operator</div><div>HELD=`/usr/sbin/postqueue -p | grep \! | cut -d'!' -f1`</div><div><br></div><div>if [ ! -z "$HELD" ]; then</div>
<div>  echo "Message id $HELD is being held for review." | mail -s "Message HELD" $recipient</div><div>fi</div><div>------------------------------------------------------------------------------------</div>
</div><div><br></div><div><br></div><div><br></div></div>
<br />-- 
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.