0

我有一个带有联系表单的 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 
}; 
?>
4

2 回答 2

3

Windows 没有像 unix 类型的操作系统那样的内置电子邮件服务器。您需要配置 php.ini 以添加用于中继电子邮件的 SMTP 服务器信息。

于 2011-06-17T14:08:30.980 回答
2

`mail()' 函数的PHP 手册页详细介绍了 Windows 特定的一些要点。但是,可能影响您的要点在本节中:(引用)

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

其次,自定义标头(如 From:、Cc:、Bcc: 和 Date:)首先不由 MTA 解释,而是由 PHP 解析。

因此, to 参数不应该是 . 形式的地址"Something <someone@example.com>"。与 MTA 交谈时,mail 命令可能无法正确解析此内容。

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

希望有帮助。

于 2011-06-17T14:11:17.060 回答