PHP在WIMP上发送电子邮件失败

PHP在WIMP上发送电子邮件失败,php,iis-7,email,wimp,Php,Iis 7,Email,Wimp,我有一个WordPress站点,它有一个联系人表单,可以在我的MAMP环境中正常工作,但是当我发布到我的客户端WIMP服务器时,我遇到了一个故障 我对WIMP环境一点也不熟悉——如何检查PHP错误日志 顺便问一下,在WIMP上发送PHP电子邮件是否会导致这种情况 代码: <?php if ($_POST["contact_name"]<>'') { $ToEmail = 'me@domain.com'; $EmailSubject = 'New co

我有一个WordPress站点,它有一个联系人表单,可以在我的MAMP环境中正常工作,但是当我发布到我的客户端WIMP服务器时,我遇到了一个故障

  • 我对WIMP环境一点也不熟悉——如何检查PHP错误日志
  • 顺便问一下,在WIMP上发送PHP电子邮件是否会导致这种情况
代码:

<?php 

if ($_POST["contact_name"]<>'') { 
    $ToEmail = 'me@domain.com'; 
    $EmailSubject = 'New contact message';  
    $mailheader = "From: ".$_POST["contact_email"]."\r\n";  
    $mailheader .= "Reply-To: ".$_POST["contact_email"]."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";  
    $MESSAGE_BODY = "<b>Name:</b> ".$_POST["contact_name"]."<br>";  
    $MESSAGE_BODY .= "<b>Email:</b> ".$_POST["contact_email"]."<br>";
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 

?> 
<h4>Your message was sent. We will be in touch with you shortly.</h4>
<?php 
} else { 
<form id="contact-form" name="contact" method="post" action="#">
<label for="contact-name">Name *</label>
<input type="text" id="contact-name" name="contact_name" tabindex="1" class="required"/>
<label for="contact-email">Email</label>
<input type="text" id="contact-email" name="contact_email" tabindex="2" class="email" />
<input type="submit" id="contact-submit" name="contact_submit" value="" tabindex="8" />
</form>
<?php 
}; 
?>

您的消息已发送。我们将很快与您联系。

Windows没有像unix类型的OSs那样的内置电子邮件服务器。您需要配置php.ini以添加SMTP服务器信息,通过这些信息来中继电子邮件。

Windows没有像unix类型OSs那样的内置电子邮件服务器。您需要配置php.ini以添加SMTP服务器信息,通过这些信息来中继电子邮件。

该函数详细介绍了许多Windows特定的点。然而,可能影响您的要点在本节中:(引用)

mail()的Windows实现在许多方面与Unix实现不同。首先,它不使用本地二进制文件来编写消息,只在直接套接字上运行,这意味着需要MTA监听网络套接字(可以在本地主机或远程计算机上)

其次,像From:、Cc:、Bcc:和Date:这样的自定义头首先不是由MTA解释的,而是由PHP解析的

因此,to参数不应是
“Something”
形式的地址。与MTA对话时,mail命令可能无法正确解析此内容

还有一些其他的事情要考虑;请阅读手册页了解更多信息

希望对您有所帮助。

该函数详细介绍了一些Windows特有的要点。然而,可能影响您的要点在本节中:(引用)

mail()的Windows实现在许多方面与Unix实现不同。首先,它不使用本地二进制文件来编写消息,只在直接套接字上运行,这意味着需要MTA监听网络套接字(可以在本地主机或远程计算机上)

其次,像From:、Cc:、Bcc:和Date:这样的自定义头首先不是由MTA解释的,而是由PHP解析的

因此,to参数不应是
“Something”
形式的地址。与MTA对话时,mail命令可能无法正确解析此内容

还有一些其他的事情要考虑;请阅读手册页了解更多信息


希望这能有所帮助。

你知道,你至少是我发现的第三个与IIS和邮件有问题的人。你知道,你至少是我发现的第三个与IIS和邮件有问题的人。是的。根据我的经验,您需要在PHP.INI for Windows中配置
SMTP
SMTP\u端口
,并可能配置
sendmail\u from
。根据我的记忆,这里我们将它指向为SMTP.Yup配置的Exchange服务器。根据我的经验,您需要在PHP.INI for Windows中配置
SMTP
SMTP\u端口
,并可能配置
sendmail\u from
。根据我的记忆,这里我们将它指向为SMTP配置的Exchange服务器。