Это связано с проблемой сервера IIS или конфигурацией PHP, не код PHP.
Я использую сервер IIS6 с установленным PHP, следующий код php никогда не отправит электронное письмо:
mail("user@example.com", "hi", "thanks");
//...mail (адрес, тема, сообщение)
Сервер, на котором это работает, имеет действующий SMTP-сервер, я знаю, потому что могу telnet для локальный: 25 и отправлять электронные письма, напрямую обращаясь к протоколу, так что это не проблема.
Однако этот код не будет отправлен. Я посмотрел на свой php.ini файл, и, похоже, мне тоже все правильно:
[mail function]
SMTP = localhost
smtp_port = 25
редактировать: Я могу подтвердить, что программирование, которое обращается к сокету с помощью протокола SMTP, также работает, но функция mail () по-прежнему отказывается.
Если вы используете аутентификацию в своем файле php.ini, вам необходимо использовать сценарии аутентификации SMTP для отправки почты с сервера.
проверьте, запущена ли на сервере служба smtp.
Самый простой способ - открыть командное окно, start -> run -> cmd
telnet localhost 25
посмотрите, получите ли вы ответ, если нет, вам нужно запустить службу smtp.