PHP邮件,DNS请求超时和FQDN

时间:2016-09-27 00:22:39

标签: dns smtp windows-server-2012-r2 nslookup fqdn

我想让mail()中的Windows Server 2012 R2 PHP工作。为此,我首先按照this page安装SMTP

令我困惑的一件事是Full-qualified domain nameWIN-RFELH8GM0KN是默认提出的。我的服务器托管了几个网站,有谁知道我应该在这里指定哪个网站?

我没有更改此内容,因此mail www.google.com中的nslookup会返回DNS request timed out.所以这是错误吗?

enter image description here

原因是我的test.php没有发送邮件:

<?php
mail('mymail@gmail.com', 'title', 'content');
?>

有人可以帮忙吗?

更新1 在@LittleAI的答案之后,我启动了SMTP,但DNS request timed out仍在那里:

enter image description here

更新2 以下是php.ini

enter image description here

telnet localhost 25返回以下内容:

enter image description here

更新3 这是一项测试,效果很好:我确实在softtitmur@gmail.com的收件箱中收到了测试邮件。但是,如果我在Update 1中重做测试,则仍然会DNS requested time out.test.php仍无法发送邮件......

enter image description here

更新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 = softtimur@gmail.com ,因此,mail()的php现在正常工作,所以问题解决了,但我仍然不理解FQDN及其默认值价值(即WIN-RFELH8GM0KN)......

1 个答案:

答案 0 :(得分:0)

我注意到的第一件事是IIS中的SMTP虚拟服务未处于启动状态,因此这会导致问题。在测试之前,请确保此服务处于启动状态。

FQDN名称主要用于通过端口25连接到服务器时将显示发件人的SMTP横幅。

可能值得在您的服务器上安装DNS角色,并创建一个引用假域(例如test.com)的正向查找区域,并使用您的服务器IP在此区域内创建一个名为SMTP的记录。确保将服务器设置为使用127.0.0.1作为DNS提供程序,以便在将响应委派给root提示/外部dns转发器之前检查记录。

您需要使用Telnet执行SMTP请求以确认SMTP正在侦听端口25.您可以使用localhost ip address(127.0.0.1)执行此操作,如下所示:

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

由于SPF记录,您可能不会收到从您的中转到GMAIL的电子邮件,该记录仅允许某些IP /主机名作为google.com发送,但是对于测试,您应该看到您的服务器在数据后收到邮件已输入。

以下是在服务器上使用telnet的指南。只需确保已安装telnet功能,因为默认情况下未安装此功能。

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

其他:

 telnet localhost 25

在SMTP横幅之后键入以下命令,但请确保不要犯任何错误,否则您可能需要重新开始您的会议。

 helo test.com

然后,您应该看到250响应,表示服务器正在侦听

以下类型:

MAIL FROM: test@test.com

应该回答OK。如果是,请输入:

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

再次,它应该回答OK。如果是,请键入以下内容:

DATA

在DATA命令后按Enter键。你现在进入了电子邮件的正文。出于测试目的,我们将错过主题栏并向主体添加一些数据。

  This is a test email.

然后要完成电子邮件,您需要按回车键留空行,然后按句号停止,然后再返回。

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

截图所有命令,但您可以删除电子邮件,以便我可以看到输出。