Detectando e-mails em um texto

Estou tentando criar uma função que traduza todas as ocorrências de um endereço de email de texto sem formatação em uma determinada string para ele htmlized version.

Digamos que eu tenha o seguinte código, ondehtmlizeEmails é a função que estou procurando:

$str = "Send me an email to bob@example.com.";
echo htmlizeEmails($str); // Echoes "Send me an email to <a href="mailto:bob@example.com">bob@example.com</a>."

Se possível, eu gostaria que essa função usasse ofilter_var para verificar se o email é válid

Alguém sabe como fazer isso? Obrigado

Editar

Obrigado pelas respostas, usei o regex do Shocker para corresponder a possíveis endereços de e-mail e, em seguida,s se ofilter_var valida, é substituído.

function htmlizeEmails($text)
    preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/', $text, $potentialEmails, PREG_SET_ORDER);

    $potentialEmailsCount = count($potentialEmails);
    for ($i = 0; $i < $potentialEmailsCount; $i++) {
        if (filter_var($potentialEmails[$i][0], FILTER_VALIDATE_EMAIL)) {
            $text = str_replace($potentialEmails[$i][0], '<a href="mailto:' . $potentialEmails[$i][0] .'">' . $potentialEmails[$i][0] .'</a>', $text);
        }
    }
}