Ciao. Ti posso dire di aver avuto anch'io questo problema e di aver tratto le seguenti conclusioni:
Perchè la funzione mail abbia esito positivo deve essere attivo un programma sendmail, nel tuo caso sicuramente c'è e funziona altrimenti la funzione darebbe esito negativo;
dato che l'email viene correttamente inviata al programma sendmail (io utilizzo postcast server che è gratuito ed in quel caso è possibile verificare l'invio aprendo l'email come da una normale casella di posta) l'intoppo è tra il programma sendmail ed il server che dovrebbe ricevere la mail. Ciò significa che non riguarda il codice, semmai i controlli che il server esercita sulla posta; ad esempio se tenti da locale di inviare a gmail non riceve proprio la posta, se provi ad inviare a yahoo a volte riceve a volte no, ma quasi sempre finisce tra gli spam. Le mail vengono ricevute solo da server che hanno determinate credenziali o caratteristiche, che io non conosco.