You are on the right track. The only way to be absolutely sure is to parse the MTA Envelope ie the Recieved headers. Also I noticed you left out Cc: field which may have just been a keying omission :)
in reply to Determining who the email is meant for
Update: merlyn point is valid if not entirely clear. Some MDA's (Mail Delivery Agents) will throw away MTA envelope information before delivery, but since you stated that you were intercepting mail from the MTA (sendmail) the envelope will be intact. Procmail has been available as an optional direct MDA for sendmail as of V8.7. (sendmail.mc -- Feature(`local_procmail'), most major Linux distro's have it present sendmail.mc though it may be commented out) and certainly is a candidate solution for your problem but not the only solution. Although local_procmail configuration has been added as a M4 feature you can actually modify the sendmail local mail delivery parameters to point to any MDA you want including a (hrumph) home rolled Perly.
# sendmail.cf after local_promail turned on
A=procmail -Y -a $h -d $u
mitd-Made in the Dark
'Interactive! Paper tape is interactive!
If you don't believe me I can show
you my paper cut scars!'