我尝试设置email.html和action.php,以便有人可以从网站发送电子邮件。这是email.html中的代码
<form action="./action.php" method="post">
<p>Your Name</p>
<p><input type="text" name="name" /></p>
<p>Email</p>
<p><input type="text" name="email" /></p>
<p>Services</p>
<p><input type="text" name="service" /></p>
<p>Requests</p>
<p><textarea rows="8" cols="32" name="comment"></textarea></p>
<p><input type="submit" value="Send" /></p>
</form>
在action.php我有
<?php
$to = "foo@outlook.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "foo2@gmail.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
在email.html中输入的信息成功加载到action.php中,但我的Outlook收件箱中没有从电子邮件方法收到任何内容。我错过了什么吗?
答案 0 :(得分:6)
首先检查mail
的返回值,看看您的SMTP服务器是否接受了该邮件。
另外,根据Namecheap的文档your From address is invalid。
只有我们服务器上托管的域才能在“发件人”中使用 领域。任何未托管我们的域名都无法添加到“发件人”中 领域。我们必须采取这一措施来防止使用垃圾邮件 论坛,留言簿和联系表格脚本。对于您的站点脚本 要正常工作,您应将“发件人”字段设置为具有的“电子邮件”帐户 已在您的cPanel中创建。
即使您的托管公司允许这样做,您也不应该使用非Gmail服务器从@ gmail.com发送邮件。在接收端通常会blocked by SPF和其他此类反垃圾邮件措施。
答案 1 :(得分:1)
首先检查邮件的结果。 您还应该检查php错误日志文件。
当您的邮件真正用完时,请使用有效的发件人电子邮件,您可以从接收邮件服务器获得退款。
不要忘记,有很多反垃圾邮件技术。 最重要的是,您尊重并了解SPF的工作方式。 这是失败最多的网站之一,网站不会发送未收到邮件的电子邮件。答案 2 :(得分:0)
好吧,我的头很难受。只是为了意识到他们正在我的&#34; $ to&#34;的垃圾邮件文件夹中。电子邮件ID。另外请检查一下。