2013-09-28 90 views
3

我尝试设置email.html和action.php,以便有人可以从网站发送电子邮件。这里是email.html代码未收到来自PHP邮件()方法的电子邮件

<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 = "[email protected]"; 
    $subject = "Test mail"; 
    $message = "Hello! This is a simple email message."; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    echo "Mail Sent."; 
?> 

在email.html输入的信息成功加载到action.php的,但没有什么是我的Outlook收件箱接收从电子邮件方法。我错过了什么吗?

+0

你一味地认为电子邮件已被发送。您需要检查'mail'的返回值以检查它是否实际发送:'if(mail(...)){// mail sent}'。 –

+1

您的托管机器上是否有一个活动的电子邮件发件人,如sendmail或PHPMailer? –

+1

您的系统上是否安装了SMTP服务器? – aaron

回答

6

首先检查返回值mail以查看邮件是否被SMTP服务器接受。

此外,根据Namecheap的文档,your From address is invalid

只有在我们的服务器上托管的域可用于'From' 字段中。任何未与我们托管的网域都无法添加到'From' 字段。我们必须采取这项措施,以防止使用 论坛,留言簿和联系表单脚本发送垃圾邮件。为使您的网站脚本 正常工作,您应该将“发件人”字段设置为在您的cPanel中创建了 的电子邮件帐户。

即使您的托管公司允许这样做,您也不应该使用非Gmail服务器发送@ gmail.com邮件。在接收端通常会使用blocked by SPF等反垃圾邮件措施。

+0

如何在我的cPanel中将'From'字段设置为电子邮件帐户? –

1

首先检查邮件的结果。 你也应该检查php错误日志文件。

当您的邮件真的出去时,使用有效的发件人电子邮件,您可以从接收邮件服务器中弹出。

别忘了,有很多反垃圾邮件技术的。 最重要的是,你尊重并知道SPF是如何工作的。 这是最失败的一个,网站不会发送没有到达收件人的电子邮件。

0

好吧,狠狠地砸了我的头..只是为了意识到他们正在我的“$ to”电子邮件ID的垃圾邮件文件夹中。同时检查你的身边。

相关问题