A vedere il codice sembra tutto ok.
Hai provato a controllare che le email non vengano inserite nella cartella spam del destinatario?
Fa questa prova:
- come destinatario inventa un indirizzo di posta xxxxxxxx@spam.la e al posto delle x metti quello che vuoi (anche la lunghezza è arbitraria)
- fa girare il tuo script
- va su www.spam.la e filtra secondo l'indirizzo che hai scelto
se nell'elenco trovi l'email che hai inviato vuol dire che il tuo script funziona e il problema è da ricercare altrove.
spam.la è un servizio che non richiede registrazione, quindi non devi creare la casella di posta prima di far girare lo script. E' un servizio per le email spazzatura (di solito si usa per registrazioni su siti poco affidabili o per fare prove come la tua), non fa alcun tipo di filtraggio sulle mail ricevute, quindi se un'email arriva, questa apparirà nell'elenco.