Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > IIS + SMTP


Автор: BaNaNaS 25.1.2006, 11:27
У меня имеется сервер MS Win2003 + IIS + ISA также установлен PHP 5.1 RC1.

Так вот возникла необходимость отправлять почтовые сообщения пользователям сайта который стоит на сервере, в PHP имеется функция Mail() так вот при отправки письма на любой почтовый ящик(даже @localhost) она мне возвращает False.
Вопрос: Как настроить в IIS SMTP?

Автор: Sun 25.1.2006, 12:40
Тебе нужно установить E-Mail services через Add/Remove Windows components. Дальше в php.ini файле прописываешь переменные:

SMTP = mail.server.com
sendmail_from = [email protected]

где mail.server.com - доменное имя твоего сервера

Автор: BaNaNaS 25.1.2006, 12:54
Sun, Не прокатывает этот вариант, надо что-то колбасить с IIS'ом мне кажеться.

и еще деменное имя моего сервера это имя компьютера.домен сети?

Автор: Sun 25.1.2006, 13:09
У тебя в настройках IIS после установки E-Mail services должен появится Default SMTP Virtual Server. Проверь или он запущен. Потом зайди в него и там должна быть папка Domains, в которой будет находится домен по умолчанию. Если ты не используешь Active Directory то это будет NetBIOS имя (короткое имя твоего компьютера). Имя этого домена можешь использовать при отправке по SMTP протоколу через PHP, либо можешь подставить localhost в php.ini если у тебя PHP запускается на этом же компьютере.

Если дальше не будет работать - проверь или доступен SMTP порт (25) через комманду telnet:

telnet localhost 25

тебе должно высветится приглашение от SMTP сервера. Если этого не будет - проверь настройки файервола.

Автор: BaNaNaS 25.1.2006, 14:11
Sun, все рафно фигня какае-то!

telnet дштлыьщдтуылюкг 25, говорит: 220 linksmolensk.ru Microsoft ESMTP MAIL Service, Version: 6.0.3790.0 ready at Wed, 25 Jan 2006 14:08:53 +0300

в php.ini рисую:

SMTP = linksmolensk.ru
smtp_port = 25
sendmail_from = [email protected]

Но почему-то все не так! неотправляет

Автор: Sun 25.1.2006, 16:03
Приведи код скрипта. Еще как вариант может использоваться не тот php.ini который ты редактируешь. Посмотри в phpinfo() правильный ли путь к php.ini и настройка SMTP.

Автор: BaNaNaS 25.1.2006, 16:36
Используется тот php.ini который я редактирую, в код скрипта хотябы вот этот: http://linksmolensk.ru/docs/php/f/mail.html

Автор: Sun 25.1.2006, 18:36
Попробуй отсылать и принимать письма внутри твоего домена, не отсылая на другие почтовые сервера, потому что возможно нужны дополнительные настройки в DNS и т.д. Для этого тебе нужно создать POP3 домен и почтовые ящики на нем. Зайди в

Administrative Tools->POP3 Service

Выбери твой сервер и нажми "New domain". Добавь linksmolensk.ru домен и создай 2 почтовых ящика. Один тот с которого будет отсылаться письмо, второй тот который будт принимать, например [email protected] и [email protected]. Затем запускай скрипт
Код

<? 
$to = "[email protected]"; 
$from = "[email protected]"; 
$sub = "My Email"; 
$msg = "Hello World!"; 
$res = mail($to, $sub, $msg, "From: $from"); 
echo $res;
?> 

и смотри или в почтовом ящике [email protected] появилось новое сообщение. Если нет - смотри в Event viwer->System проблему в системных логах. Как вариант - проблема в твоей версии PHP. Может стоит поставить более стабильную.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)