忘记密码。没有收到yahoo / gmail或其他邮件的电子邮件

时间:2014-02-04 17:38:39

标签: php mysql email

我创建了一个忘记密码。它检查数据库中是否存在电子邮件,并创建激活码。但是,我没有从我输入的电子邮件收到任何邮件。我必须安装一些东西来使这项工作?如果您发现这是重复的,那不是因为发布此忘记密码的其他人正在为他们工作,但在我的情况下我不接收电子邮件。

以下是代码:

<?php 
error_reporting(0);
if($_POST['submit']=='Send')
{
//keep it inside
$email=$_POST['email'];
$code = $_GET['activation_code'];
$con=mysqli_connect("localhost","root","","test");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$query = mysqli_query($con,"select * from users where user_email='$email'")
or die(mysqli_error($con)); 

 if (mysqli_num_rows ($query)==1) 
 {
$code=rand(100,999);
$message="You activation link is: http://192.168.0.108/resetpass.php?email=$email&code=$code";
mail($email, "daleii.calderon@yahoo.com", $message);    
echo 'Email sent';
$query2 = mysqli_query($con,"update users set activation_code='$code' where user_email='$email' ")
or die(mysqli_error($con)); 
}
else
{
echo 'No user exist with this email id';

}}

?>
<form action="forgot.php" method="post">
Enter you email ID: <input type="text" name="email">
<input type="submit" name="submit" value="Send">
</form>

2 个答案:

答案 0 :(得分:0)

您无法在localhost上发送电子邮件。如果您想测试您的代码,您需要在允许发送电子邮件的免费托管网站上进行测试。 你的mail()函数有一些错误。更好:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

答案 1 :(得分:0)

您是否安装了本地邮件服务器?有很多免费的。例如,XAMPP包含2个好的(假sendmail和Mercury)。对于开发,通常足以在本地存储邮件,尤其是在使用真实电子邮件地址时不要惹恼人们。

您可以在此问题中找到更多信息:How to configure XAMPP to send mail from localhost?