所以这是我发送电子邮件的代码。当我尝试发送电子邮件时,我收到正确的消息,在这种情况下,“用户存在”和“电子邮件已发送”,但我无法收到电子邮件。那么有人会发现错误并试图帮助我吗?
<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";
}
答案 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."'";