PHP邮件 - 找不到错误

时间:2015-06-27 17:12:50

标签: php

所以这是我发送电子邮件的代码。当我尝试发送电子邮件时,我收到正确的消息,在这种情况下,“用户存在”和“电子邮件已发送”,但我无法收到电子邮件。那么有人会发现错误并试图帮助我吗?

<form action="forgot2.php" method="post">
Enter you email ID: <input type="text" name="email">
<input type="submit" name="submit" value="Send">
</form>
error_reporting(0);
$email=$_POST["email"];
$Subject = "GOSPodin covek";

if($_POST['submit']=='Send')
{
    mysql_connect('localhost','root','') or die(mysql_error);
    mysql_select_db('login');
    $query="select * from clanovi where email='$email'";
    $result=mysql_query($query) or die(error);
    if(mysql_num_rows($result))
    {
        echo "User exist"; 
    }
    else
    { 
        echo "No user exist with this email id";
    }
}
if(mysql_num_rows($result))
{
    $code=rand(100,999);
    $message="You activation link is: http://localhost/login_form/forgot.php?          email=$email&code=$code";
    mail($email, "Subject Goes Here", $message);
    echo "Email sent"; 
}
else
{
    echo "No user exist with this email id";
}

5 个答案:

答案 0 :(得分:1)

首先,您需要检查邮件是否实际发送:

if (mail($email, "Subject Goes Here", $message)) {
    // then it's actually sent.
}

如果mail()没有返回false,则邮件会传递到您的本地邮件服务器以进行投放。假设您已经在本地测试盒上设置了邮件服务器?如果没有,问题显而易见......

如果PHP检出确定但您仍然没有收到邮件(并且它不在您的垃圾邮件文件夹中等),您需要调查服务器的邮件日志以查找可能的问题在PHP之外。

...为了热爱代码和所有调试的神圣事物,如果你真的试图找出错误的话,请不要使用error_reporting(0);! (错误消息对此有帮助。)

答案 1 :(得分:0)

您确定您的脚本实际上是在发送邮件吗?

替换:

mail($email, "Subject Goes Here", $message);
echo "Email sent"; 

人:

if(@mail($email, "Subject Goes Here", $message)) {
  echo "Email sent";
} else {
  echo "Email not sent";
}

答案 2 :(得分:0)

试试

我用它对我来说很好

$headers = 'From: support@example.com';
mail($payer_email, 'Tokens', "Thank you for purchase tokens $additional-message", $headers);

答案 3 :(得分:0)

假设mail()确实返回true并且电子邮件是有效的,您希望在[mail function]部分中使用php.ini配置有效的smtp服务器。

答案 4 :(得分:0)

改变这个。

$query="select * from clanovi where email='".$email."'";