Функция php mail() и IIS
Я кодировал сайт с помощью PHP. Наш клиент развернул сайт в IIS. Они установили PHP 5.2, но mail()
функция не работает на их сервере.
Они добавили этот файл конфигурации в папку www:
web.config:
<configuration>
<system.webServer>
<handlers>
<remove name="PHP- fastcgi" />
<add name="PHP - FastCGI" path="*.php" verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Php\php-cgi.exe" resourceType="Unspecified" />
</handlers>
<defaultDocument>
<files>
<add value="default.php" />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Следующая ошибка генерируется mail()
функция:
server error - 500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Я знаю, что должно быть простое решение с редактированием php.ini
файл. Но ответственное лицо заявило, что не может редактировать php.ini
и мы должны кодировать контактную страницу с asp.
Есть ли способ отправить почту, используя php в этом случае?
2 ответа
Была долгая выдающаяся ошибка в mail()
функция в PHP 5.2 на Windows:
Ошибка #28038 Неправильные команды RCPT TO отправлены на SMTP-сервер
From:
заголовок был неправильно проанализирован mail()
функционировать и наиболее корректно вести себя RFC-совместимые почтовые серверы будут отклонять его как недействительный адрес.
Теперь это исправлено в PHP 5.2.11+ (я проверял это с PHP 5.2.14, PHP 5.2.17 и PHP 5.3.6). Так что я бы узнал точную версию PHP 5.2.x, под которой работает ваше приложение, и посмотрел бы, не подвержена ли она этой ошибке.
Однако я бы рекомендовал вместо этого использовать SwiftMailer. Вы получаете гораздо больший контроль над такими вещами, как настройка сервера исходящей почты, аутентификация и т. Д., И это не зависит от использования встроенного mail()
функция. У нас есть несколько клиентов, использующих это на нашей платформе общего хостинга, и они очень довольны этим.