Il codice è corretto. Il fatto che non arrivino sempre email, dipende dal fatto che il metodo con mailto utilizza il client di posta del visitatore. Se uno non lo ha configurato, non riesce a mandare la mail ovviamente. Per ovviare, dovresti usare il server