在进行群发邮件时,如何用客户端的用户名替换{username}?我有以下代码,但它只为所有电子邮件提供第一个用户。
if(isset($_POST["sub"]))
{
$server = mysqli_real_escape_string($conn, $_POST["srv"]);
$subj = mysqli_real_escape_string($conn, $_POST["subj"]);
$msg = mysqli_real_escape_string($conn, $_POST["msg"]);
if($server == "all")
{
$query = mysqli_query($conn, "SELECT * FROM `testing`");
}
else
{
$query = mysqli_query($conn, "SELECT * FROM `testing` WHERE `srv` = '$srv'");
}
while($results = mysqli_fetch_assoc($query))
{
$subj = str_replace("{username}", $results["uname"], $subj);
$msg = str_replace("{username}", $results["uname"], $msg);
mail($results["mail"], $subj, $msg, $headers);
}
}
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
因为你用第一个用户名替换了用户名占位符({username}),下次你尝试用第二个用户名替换用户名占位符时,$ subj字符串中不存在用户名占位符。
请改为:
while($results = mysqli_fetch_assoc($query))
{
$userSubject = str_replace("{username}", $results["uname"], $subj);
$userMessage= str_replace("{username}", $results["uname"], $msg);
mail($results["mail"], $userSubject, $userMessage, $headers);
}