Как использовать функцию mail() в PHP на IIS сервере?

арендую арендовал VPS сервер и установил на него Windows Server 2012. На нем крутились разного рода сайты, в том числе PHP, которые в некоторых случая требуют отправки почты. Плюс ко всему, потребовалась функция email подписки/рассылки на сайте, вот что из этого вышло…

Глаз пал на Busmail и как оказалось – не зря. Этот сервис предлагает услуги массовой рассылки по вашим базам, рассылки объявлений по интернет доскам, еще много всяких приколюх, но самое главное у них можно купить PHP-скрипт, который позволяет делать рассылку со своего сервера самому с разными параметрами (задержкой, подменой текста и т.д). Кстати, поддержка у Busmail очень отзывчивая, мы вместе решали мою проблему и наконец решили. Одним словом: совветую!

Оплатил, скачал и сконфигурировал скрипт. После чего поместил его рядом с работающим сайтом на WordPress, подумав, что раз WordPress на PHP работает отлично, то и скрипт на PHP будет работать также – я ошибался. Дело в том, что по умолчанию функция mail() на PHP с Windows не работает.

Перелопатил много статей, мучился с разными утилитами (наподобие Sendmail), в итоге нашел решение:

Устанавливаем службу SNTP server (она идет вместе с IIS 6.0)

Запускаем Диспетчер служб IIS 6.0

Заходим в Свойства SMTP Virtual Server > вкладка Доступ > Ретрансляция

IIS

Добавляем в список разрешенных компьютеров, компьютер с ip 127.0.0.1 (после чего перезапускаем SMTP)

SMTP SMTP-Settings

Теперь нам надо сконфигурировать PHP. Заходим в папку, куда он установлен, у меня это C:\Program Files (x86)\PHP\v5.3\ и находим файл PHP.ini

В нем нам надо найти раздел [mail function] и в следующих строка прописать свои параметры:

Сохраняем файл, и попробуем протестировать отправку. Создадим PHP скрипт, со следующим кодом:

 

И назовем его test.php, после чего зальем на сервер, и попробуем выполнить – указав в адресной строке браузера http://адресс-сервера-или-домен/путь-до-файла/test.php (например, http://mysite.ru/test.php). Должны увидеть:

Через некоторое время на указанный емейл (вы должны были его прописать в test.php, вместо email-na-kotoriy-pridet-testovoe-pismo@mail.ru) нам придет письмо от email_kotoriy_budet_otpravitelem@mail.ru с текстом:

Вот и все, никаких утилит типа Sendmail нам не надо – обошлись стандартными средствами от Microsoft, если не считать PHP.

comments powered by HyperComments