Are you able to check the logs for the mail server? It sounds to me like the mail server is not set up as an open relay, thus when the cronjob tries to send the email, the server is saying no, because the server's hostname is localhost.localdomain, and the @domain.com does not match that. I.e., you're not spoofing an email on this server...
Odd that it would work when not run as a cronjob... Who does the email come from in the actual header when not run as a cronjob? Does it match the address that you're using as the from address in the script?
Also, you may want to edit out those @xerox.com email addresses. I doubt those people want their email addresses put on here.