mail() restituisce TRUE se la funzione è stata processata non contenendo errori. Tra quello e il fatto che l'email arrivi a destinazione, ci sono ancora un centinaio di passaggi.

Dovresti essere più preciso. Ad esempio il server che usi è locale o è un hosting?