Я получаю эту проблему:
PHP Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for chris.mahan@gmail.com in c:\inetpub\wwwroot\mailtest.php on line 12
из этого скрипта:
<?php
$to = "chris.mahan@gmail.com";
$subject = "test";
$body = "this is a test";
if (mail($to, $subject, $body)){
echo "mail sent";
}
else {
echo "problem";
}
?>
раздел из php.ini на сервере:
[mail function]
; For Win32 only.
SMTP = server.domain.com; for Win32 only
smtp_port = 25
; For Win32 only.
sendmail_from = support@domain.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
(обратите внимание, что «сервер» и «домен» относятся точно к фактическому серверу и имени домена)
В IIS SMTP работает. На вкладке "Access"
, кнопка "Relay"
, параметр Выбрать, какие компьютеры могут ретранслировать через этот виртуальный сервер, установлен на checkbox "only the list below"
, а в списке - "127.0.0.1(xxx.xxx.xxx.xxx)" (x's representing actual server IP address).
.
Сервер работает Windows Server 2003 Service Pack 2
, полностью исправлен с 17:00 1 сентября 2008 года. Я предполагаю, что он работает IIS7
(как проверить?).
Есть идеи?
В ответ на Espo : Эта машина размещена в центре обработки данных. Мы не хотим использовать учетную запись Gmail (делали это, хотим отойти от этого). Windows Server 2003 поставляется с собственным SMTP-сервером.
Обновление: по совету Яакова Эллиса, я снял все ограничения ретрансляции и добавил IP-адрес сервера в список разрешенных (с помощью кнопки обратного DNS), и все заработало.
Спасибо Эспо и Яакову за помощь.