2016-09-27 3 views
2

Я хочу сделать mail() работы PHP в моем Windows Server 2012 R2. С этой целью я сначала установил SMTP, следуя this page.Почта PHP, время ожидания DNS и полное доменное имя

Одна вещь, которая меня смущает, это Full-qualified domain name. WIN-RFELH8GM0KN - это то, что он предлагает по умолчанию. На моем сервере размещены несколько веб-сайтов, кто-нибудь знает, какой сайт я должен указать здесь?

Я не изменил это, как следствие, mail www.google.com в nslookupDNS request timed out. Так это ошибка?

enter image description here

Из причины, мой test.php не отправляет почту:

<?php 
mail('[email protected]', 'title', 'content'); 
?> 

Может кто-нибудь помочь?

Update 1 После ответа @LittleAI, я начал SMTP, но DNS request timed out все еще есть:

enter image description here

Update 2 Вот php.ini:

enter image description here

telnet localhost 25 возвращает следующее:

enter image description here

Update 3 Здесь был тест, который хорошо работал: Я получил тестовое письмо в почтовом ящике из [email protected]. Однако, если я повторю тест в Update 1, есть еще DNS requested time out.. И test.php до сих пор не могу отправить почту ...

enter image description here

Update 4 Я просто понял, что в the page I followed, это mail.vsysad.com под nslookup (я думал, что это было mail vsysad.com, поэтому я попытался mail www.google.com, который сделал не имеет смысла). Так что это работает и на моем сервере, и нет DNS request timed out.

enter image description here

Затем я проверил php.ini, я понял, что sendmail_from не раскомментировать. Так я раскомментировал его и установить sendmail_from = [email protected], как результат, mail() РНР работает сейчас, так что проблема решена, хотя я до сих пор не понимаю, полное доменное имя и его значение по умолчанию (то есть, WIN-RFELH8GM0KN) ...

ответ

0

Первое, что я заметил, это то, что ваша виртуальная служба SMTP в IIS не находится в исходном состоянии, так что это вызовет проблему. Перед тестированием убедитесь, что эта служба находится в исходном состоянии.

Полное имя FQDN используется главным образом для баннера SMTP, который отправитель будет представлен при подключении через порт 25 к вашему серверу.

Возможно, стоит установить роль DNS на ваш сервер и создать зону прямого просмотра, ссылающуюся на поддельный домен, например test.com, и создать запись в этой зоне под названием SMTP с использованием IP-адресов ваших серверов. Не забудьте затем установить сервер на использование 127.0.0.1 в качестве поставщика DNS, чтобы он мог проверять запись перед передачей ответа корневым подсказкам/внешнему отправителю DNS.

Вам нужно сделать запрос SMTP с использованием Telnet для подтверждения SMTP прослушивает порт 25. Вы можете сделать это, используя адрес локальный IP (127.0.0.1), как показано ниже:

telnet 127.0.0.1 25 
    helo test.com 
    MAIL FROM: ****YOUR EMAIL ACCOUNT**** 
    RCPT TO: ****SENDERS ADDRESS**** 
    DATA 

Вы бы вероятно, не получит электронное письмо от вашего ретранслятора GMAIL из-за записи SPF, которая только позволяет определенным IP/именам хостов отправлять как google.com, но для тестирования вы должны видеть, что ваш сервер получает почту после ввода данных.

Вот руководство по использованию telnet на вашем сервере. Просто убедитесь, что у вас установлена ​​функция telnet, поскольку по умолчанию она не установлена.

http://www.yuki-onna.co.uk/email/smtp.html

Дополнительно:

telnet localhost 25 

После SMTP баннер введите следующую команду в, но убедитесь, что не делать какие-либо ошибки или иначе Вы должны будете, вероятно, начать свой sesssion во всем еще раз.

helo test.com 

Затем вы должны увидеть 250 ответ сказать, что сервер прослушивает

типа следующее:

MAIL FROM: [email protected] 

Он должен ответить OK. Если да, то введите:

RCPT TO: ***YOU EMAIL ADDRESS OF CHOICE**** 

Опять же, он должен ответить ОК. Если да, введите следующее:

DATA 

Нажмите enter после команды DATA. Теперь вы в тело письма. В целях тестирования мы пропустим панель темы и просто добавим некоторые данные в тело.

This is a test email. 

Затем, чтобы завершить почту вам нужно оставить пустую строку, нажав возвращение, а затем полная остановка, а затем снова вернуться, как так.

***BLANK LINE**** 
    . 
    ***Hit Return**** 

Снимок экрана всех команд, но вы можете очистить сообщение, чтобы я мог видеть результат.

+0

Спасибо за ваш ответ, но часть, за исключением запуска SMTP, действительно трудно понять. Я начал SMTP, но ошибка все еще существует (см. Обновление в OP). Я просто хочу сделать 'mail' работы' php', не могли бы вы сказать мне обязательные шаги, чтобы понять это? – SoftTimur

+1

Я помогу, и я уверен, что мы это отсортируем. Можете ли вы подтвердить, настроены ли ваши настройки PHP.ini на вашем сервере Windows для использования localhost.[Как настроить почтовые настройки PHP SMTP Link] (http://www.php.net/manual/en/mail.configuration.php) – Kitson88

+0

Можете ли вы также проверить, прослушивает ли сервер порт 25? Вы можете сделать это, введя следующую команду в командной строке: «telnet localhost 25» – Kitson88