Ho risolto, ma speravo ci fosse una funzione php che facesse
il lavoro, purtroppo l'unica soluzione è scorrere tutta la stringa e sostituire carattere per carattere.
attendo suggerimenti/commenti nel caso ci fosse una soluzione più performante.

Codice PHP:
<?php 
function make_html_code($my_str) { 
$new_str NULL;
    for (
$i 0$i <= strlen($my_str)-1$i++) {
        
$new_str .= "&#".ord($my_str{$i}).";";
    }
return 
$new_str
}
?>
[email="<?= make_html_code("]">email[/email]

cichity74