我创建了一个链接到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函数