There is a module EMail::Find specifically for searching text for e-mail addresses. I don't know how well it works. It does come with RFC822 validation code (Email::Valid, mentioned elsewhere), though. There is also a module RFC::RFC822::Address that checks (strictly) for the validity of an RFC822 e-mail address.
I believe Email::Valid was also mentioned. Both this and RFC::RFC822::Address approach the same problem from slightly
different tactics. One requires Parse::RecDescent, if I recall. Of course,
that's everywhere I am. {grin}