У меня недавно была эта проблема с клиентом. Код гласил:
ini_set( "sendmail_from", "noreply@<current-domain>.com" );
// $target_email has been validated as a value username.
// $subject is a simple String.
// $message is an HTML message.
mail( $target_email, $subject, $message );
Когда я проверил это на своей машине, все работало нормально. Когда я тестировал его дома, на работе, в Windows 2000 (IE6), XP (четыре разных машины и экземпляр VirtualBox) (IE6 & 7, Opera 9, Firefox 3) и Vista (IE 7), а также через Konquerer и Firefox на Ubuntu (на двух разных машинах) он работал нормально (у меня нет Mac). Я пробовал сайт в четырех разных сетях и в трех разных странах. Я сделал все, что мог, чтобы взломать этот сайт, и не получил никакой ошибки, и электронное письмо пришло с noreply @ .com на ожидаемый адрес быстро.
Когда мой клиент проверил его в своем офисе, он получил ошибку SMTP, сказав, что имя noreply @ .com не существует, и он не получил письмо. Но те же строки отлично работают при работе на моем сервере (базовая установка LAMP работает под управлением PHP 5.3, у них Windows 5.2.6).
Что именно произошло? Моим лучшим предположением было то, что это какая-то странная проблема с сервером Windows, я не представляю, что еще это может быть. К сожалению, я не смог увидеть, как они настроили свои локальные машины для проверки этой теории.