php mail () не работает windows 2003, IIS SMTP - PullRequest
2 голосов
/ 02 сентября 2008

Я получаю эту проблему:

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), и все заработало.

Спасибо Эспо и Яакову за помощь.

Ответы [ 5 ]

4 голосов
/ 02 сентября 2008

Попробуйте снять ограничения IP для ретрансляции на SMTP-сервере и открыть его для всех реле. Если это работает, когда это установлено, то вы знаете, что проблема связана с первоначальными ограничениями. В этом случае это может быть проблема DNS или, возможно, вы указали неправильный IP-адрес.

1 голос
/ 02 сентября 2008

Вы используете неправильный SMTP-сервер. Если вы собираетесь отправлять электронные письма только на свой gmail-аккаунт, посмотрите мой ответ здесь .

Если вам также необходимо отправить электронное письмо на другие учетные записи, попросите вашего интернет-провайдера указать ваши SMTP-данные.

РЕДАКТИРОВАТЬ: Я думаю, что всегда лучше использовать SMTP-сервер ISP, так как они (должны) иметь людей, контролирующих почтовые очереди, проверяющих эксплойты и обновляющих почтовое программное обеспечение. Если ваш бизнес разрабатывает веб-приложения, почти всегда лучше придерживаться того, что вы делаете, и позволить другим людям делать свое дело (например, запускать почтовые серверы).

Если по какой-то причине вы все еще хотите использовать свой локальный SMTP-сервер, первым делом следует исключить php-часть. Попробуйте выполнить следующее: KB153119 , а затем проверьте ваш SMTPServer IISlog на наличие ошибок.

EDIT2: В этой статье говорится, что она предназначена для обмена, но те же команды используются и для других SMTP-серверов (включая IIS), поэтому, пожалуйста, попробуйте и посмотрите, можете ли вы отправлять письма, используя примеры из статьи.

0 голосов
/ 10 января 2009

У меня была такая же проблема, php 5 на сервере iis6, 2003. Php всегда терпел неудачу при попытке использовать mail (). Мне удалось получить прием почты от php, изменив ограничения ретрансляции с «Только список ниже» (который по умолчанию пуст) на «Все, кроме списка ниже». Ограничения ретрансляции можно найти на вкладке «Доступ» на экранах свойств серверов smtp. Конечно, если сервер открыт для интернета, то нужно было бы более разумно относиться к этим ограничениям ретрансляции, но в моем случае это виртуальный сервер на устройстве разработчика.

надеюсь, что это помогает.

0 голосов
/ 02 сентября 2008

@ Espo, данная статья касается серверов Exchange, а не SMTP-сервера IIS7.0.

Из сводки. В этой статье описывается, как подключиться к порту 25 на компьютере, на котором запущены службы SMTP, для устранения неполадок со связью SMTP. Сведения в этой статье, включая сообщения об ошибках, относятся только к проблемам при попытке решить проблемы связи SMTP с серверами Microsoft Exchange и не предназначены для общих целей устранения неполадок.

0 голосов
/ 02 сентября 2008

@ Espo: Я сделаю это, KB153119. Спасибо.

О почтовом сервере: я вас слышу.

Я обновлюсь, когда узнаю больше.

...