无法使PHP邮件功能正常工作

无法使PHP邮件功能正常工作,php,Php,在我将其添加到我的站点之前,尝试使用以下代码实现一个简单的php邮件函数。收到此错误 错误:1 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解第1行“1”附近要使用的正确语法 //检查连接 if(mysqli\u connect\u error()){ die(“数据库连接失败:”.mysqli_connect_error()); } $to=”admin@gmail.com"; $message=“G'Day!] 项目网站的个人帐户 已创建!若要登录,请转到 以下地

在我将其添加到我的站点之前,尝试使用以下代码实现一个简单的php邮件函数。收到此错误

错误:1

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解第1行“1”附近要使用的正确语法

//检查连接
if(mysqli\u connect\u error()){
die(“数据库连接失败:”.mysqli_connect_error());
}
$to=”admin@gmail.com";
$message=“G'Day!]
项目网站的个人帐户
已创建!若要登录,请转到
以下地址:
http://www.example.com/
您的个人登录ID和密码如下:
您没有被这个密码卡住!您可以在登录后随时更改它。
如果您有任何问题,请随时与我联系。
-你的名字
你的网站管理员
";
$sql=mail($to,“您网站的密码”,$message,“发件人:您的姓名”);
if($conn->query($sql)==TRUE){
echo“电子邮件已成功发送!”;
}否则{
echo“Error:”.$sql.
“$conn->Error; } $conn->close(); ?>

只是想看看我犯了什么洞察或明显的错误,或者我做得完全不正确。谢谢。

首先,您没有很好地使用$sql。 下面是您发送此电子邮件所需的内容

$servername = "localhost";
$dbusername = "dbname";
$dbpassword = "password";
$dbname = "dbname";

            // Create connection
            $conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            } 
            // END CREATING CONNECTION
要从数据库中选择信息,请执行以下操作:

$sql = "SELECT * FROM users'";
        $result = $conn->query($sql);


                if ($result->num_rows > 0) {
                    // output data of each row
                    while($row = $result->fetch_assoc()) { 
                        $username = $row['username'];
                        $email = $row['email'];
                    }
                }  
电子邮件格式:

    $to = "$username <$email>";
    $subject = 'Subject';
    $message = "<html>Hello $username, <br /><br />
        YOUR MESSAGE
        </html>";

    $mimeheader = 'MIME-Version: 1.0 '."\r\n".
                'Content-type: text/html; charset="iso-8895-1" '."\r\n".
                'Content-Transfer-Encoding: 7bit '."\r\n";
    $mimeheader = 'From: YOURNAME <YOUREMAIL> '."\r\n";


    $mimeheader .= "MIME-Version: 1.0\r\n";
    $mimeheader .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    if( mail($to, $subject, $message, $mimeheader) ){


    }else{
        echo 'Mail not delivered.';
    }
$to=“$username”;
$subject='subject';
$message=“你好$username,

你的信息 "; $mimeheader='MIME版本:1.0'。“\r\n”。 '内容类型:文本/html;charset=“iso-8895-1”。“\r\n”。 '内容传输编码:7bit'。“\r\n”; $mimeheader='From:YOURNAME'。“\r\n”; $mimeheader.=“MIME版本:1.0\r\n”; $mimeheader.=“内容类型:text/html;charset=ISO-8859-1\r\n”; if(邮件($to、$subject、$message、$mimeheader)){ }否则{ 回显“邮件未送达”; }
第一个主要错误是使用了
$sql=mail()
,它将返回布尔值而不是查询。之后,您可能需要检查邮件日志,以查看是否确实发送了电子邮件。您究竟想对那里的
mail()
函数的结果做些什么?什么是
$conn
?为什么称为
$sql
?呃,您认为
mail()
返回的布尔值false/true可以用作db查询吗?所以,是的,有明显的问题,你做得完全不正确。查询调用也不会返回布尔值
true
,因此您总是会说查询失败,因为根本不可能返回true。查询调用要么返回语句句柄,要么返回布尔值FALSEadmin@gmail.com并使用此人的姓名作为发件人。@dhool我建议您检查邮件。
    $to = "$username <$email>";
    $subject = 'Subject';
    $message = "<html>Hello $username, <br /><br />
        YOUR MESSAGE
        </html>";

    $mimeheader = 'MIME-Version: 1.0 '."\r\n".
                'Content-type: text/html; charset="iso-8895-1" '."\r\n".
                'Content-Transfer-Encoding: 7bit '."\r\n";
    $mimeheader = 'From: YOURNAME <YOUREMAIL> '."\r\n";


    $mimeheader .= "MIME-Version: 1.0\r\n";
    $mimeheader .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    if( mail($to, $subject, $message, $mimeheader) ){


    }else{
        echo 'Mail not delivered.';
    }