电子邮件脚本报告成功,但电子邮件不会出现在我的收件箱中


Email script reports success, but email does not appear in my inbox

我创建了一个链接到PHP页面的表单,如下所示:

<form method="get" action="contact.php">
<p>Nome:</p> <input type="text" name="name" class="name" /><br>
<p>E-mail :</p> <input type="text" name="mail" class="mail" /><br>
<p>Website:</p> <input type="text" name="website" class="website" /><br>
Mensagem: <textarea name="message" class="message" rows="2" cols="20"></textarea>        
<input type="submit" value="Enviar" class="submit" />
</form>

PHP页面:

<?php 
$field_name = $_GET['name'];
$field_email = $_GET['mail'];
$field_website = $_GET['website'];
$field_message = $_GET['message'];
$mail_to = '__munged__@gmail.com';
$subject = 'Message from a site visitor ' . $field_name;
$body_message = 'From: '.$field_name."'n";
$body_message .= 'E-mail: '.$field_email."'n";
$body_message .= 'Message: '.$field_message;
$headers = "From: $field_email'r'n";
$headers .= "Reply-To: $field_email'r'n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
    alert('Thank you for the message. We will contact you shortly.');
    window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
    // Print a message
    alert('Message failed. Please, send an email to __munged__@template-help.com');
window.location = 'index.html';
</script>
<?php
}?>

我似乎想不通这个问题。提前谢谢。

如果你有权访问网络主机,我会说试着在Ubuntu服务器上找到apache2.log文件,它位于/var/log/中,但我不知道它会在哪里。无论如何,如果您发现了这一点,您可以查看日志中的最后一条记录,看看apache是否在执行该命令时抛出了一个错误,而该错误在其他方面对用户是隐藏的。听起来邮件服务器可能有问题。你有一个设置吗?你用的是sendmail还是其他变体?

我最近在发送邮件时遇到了一些相关问题,这可能会对你有所帮助(但正如我之前所说的,这是针对linux的)

php5-mail()函数sendmail错误

检查php.ini文件的[mail function]部分中的smtp服务器设置。邮件服务器可能已成功接收到该消息,否则会返回错误。我会尝试使用不同的邮件服务器。

这是一个简单的方法。

从主题中删除未使用的空格。不要使用主题为$field_name的动态变量。

使用php5@mail函数

相关文章: