Can';t在邮件函数php中嵌入变量

Can';t在邮件函数php中嵌入变量,php,email,Php,Email,我想发送不同主题的电子邮件。我有以下代码从数据库中获取邮件主题和消息 $sql = "SELECT mail_subject, mail_content FROM new_business WHERE business_name = '$biz_name'"; $query = mysqli_query($db, $sql); while ($row = mysqli_fetch_array($query)) { $subject = $row['mail_subject']

我想发送不同主题的电子邮件。我有以下代码从数据库中获取邮件主题和消息

$sql = "SELECT mail_subject, mail_content FROM new_business WHERE business_name = '$biz_name'";

$query = mysqli_query($db, $sql);

while ($row = mysqli_fetch_array($query)) {
        $subject = $row['mail_subject']; //Getting mail subject to send
        $mail_content = $row['mail_content']; //Getting mail content 
                    }
echo $subject; //checking if it gets subject and it surely does.
$to = 'utopian51@gmail.com';

mail($to, $subject, $mail_content);//Mail is not sent
如果主题从数据库中提取数据,则不会发送邮件。我已经检查了好几次,包括垃圾邮件,还检查了主题在嵌入邮件功能之前是否从数据库中获取了任何数据。它似乎获得了正确的数据,但邮件未发送。


但是当我硬编码主题时,像这样:
$subject='这是一个测试主题'邮件已成功发送。为什么邮件函数不允许我嵌入从数据库获取主题的变量?我需要从数据库发送不同主题的邮件。解决方案是什么?

您编写的代码有很多地方让人困惑。在mysqli_uu调用和mail()调用中,您从不检查错误条件。您运行的查询将丢弃除最后一行(如果有)以外的所有行。但是,诊断mail()问题的方法不是查看收件箱。在99%以上的情况下,问题在于PHP和MTA之间的接口或MTA配置本身

您没有提供这两个方面的详细信息

我建议您只使用:

mail('utopian51@gmail.com', 'test', date('r'));
然后开始调试你的MTA


您可以独立处理批量电子邮件脚本,只需将其写入文件而不调用mail(),直到两部分都正常工作。

您确定
$subject
(当不是硬编码而是从数据库中提取时)是有效的编码字符串吗?检查您是否正确地从数据库中获取数据。请在($row=mysqli_fetch_array($query))
同时($row=mysqli_fetch_array($query,mysqli_ASSOC))
以及@b0s3所述的答案中缺少
可能是原因also@OfirBaruch是的,我从数据库中获取数据successfully@UtkarshVishnoi,我检查了一下,但还是没有成功