我不知道为什么但在提交html表单后我无法收到任何电子邮件。 我可以看到数据库中的数据,但我没有收到任何电子邮件。 我在发送后放了一些代码就可以了。只有邮件没有发送。
请帮帮我。
PHP文件:
<?php
$Name = $_POST['Name'];
$Phone= $_POST['Phone'];
$Email= $_POST['Email'];
$Subject= $_POST['Subject'];
$Message= $_POST['message'];
$conn = mysql_connect("MyServerName", "userName", "password");
mysql_select_db("Mydbname",$conn);
$sql = "INSERT INTO FC(Name, Phone, Email, Subject, Message)
VALUES ('$Name', '$Phone', '$Email', '$Subject', '$Message')";
if (mysql_query($sql, $conn)) {
$to = "myEmail@test.com"; // this is your Email address
$from = "myEmail@test.com"; // this is the sender's Email address
$headers = "From: " . $Email;
$subject = "Form submission - " . $Subject;
$message = $Name . " wrote the following:" . "\n\n" . $Message . "\n\n" . "His Phone number is: " . $Phone;
mail($to,$subject,$message,$headers);
echo '<html>
<head>
<meta http-equiv="refresh" content="0.1;url=http://www.google.com" />
</head>
<body>';
echo '<script language="javascript">';
echo 'alert("message successfully sent! we will contact you shortly.")';
echo '</script>';
echo '</body></html>';
} else {
echo "something went wrong";
}
?>
答案 0 :(得分:0)
首先检查邮件的返回值,以查看SMTP服务器是否接受该邮件。
请确保您的php.ini文件中没有阻止mail()。
如果您的邮件功能返回FALSE,那么您就会知道邮件配置存在问题。如果它返回TRUE,那么您的邮件配置可能仍然有问题。无论哪种情况,您都需要检查邮件日志,看看是否有任何错误。
问题在于,php可能正在切换邮件,您的服务器可能会发送邮件,并且可能会在此过程中过滤掉垃圾邮件。
您可以尝试使用-f参数显式设置From地址,如php.net手册页中的示例#3中所述,用于邮件:
$from = "-fmyEmail@test.com";
mail($to,$subject,$message,$headers,$from);
因此,根据您的托管规范,您的发件人地址可能无效,但如果不是:
class Telephone {
...
static namedQueries = {
byPerson{ Person p ->
eq 'person', p
}
}
}