无法使PHP邮件功能正常工作
在我将其添加到我的站点之前,尝试使用以下代码实现一个简单的php邮件函数。收到此错误 错误:1 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解第1行“1”附近要使用的正确语法无法使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!] 项目网站的个人帐户 已创建!若要登录,请转到 以下地
//检查连接
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.';
}