Per esperienza diretta so che (non ho controllato il tuo codice, però) ci sono difficoltà con gli encoding MIME a seconda del client... p.es. molto facilmente Outl**k (Express in particolare) crea difficoltà (come anche il corrispondente browser fa spesso e -malpernoi-volentieri)... anche il terminatore di linea addirittura può fare differenza.

Io p.es. attualmente ho uno script che fa quanto deve, ma ha problemi proprio con il client sopracitato nonostante abbia seguito tutte le indicazioni trovate.