fai un bel replace..

$messaggio = str_replace("'","&#39",$messaggio);

(dopo 39 metti un ; non lo metto io altrimenti lo interpreta il browser
ovvero cerchi ' e lo sostituisci con il suo esadecimale...

lo vedrai come un apostrofo, ma almeno non te lo quota!