【发布时间】:2015-09-10 12:15:48
【问题描述】:
我想发送不同主题的电子邮件。我有以下代码从数据库中获取邮件主题和消息。
$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 = 'this is a test subject';,邮件发送成功。为什么邮件功能不允许我嵌入从数据库获取主题的变量?我需要从数据库发送不同主题的邮件。解决办法是什么?
【问题讨论】:
-
你确定
$subject(当不是硬编码而是从数据库中提取时)是一个有效的编码字符串? -
检查您是否正确地从数据库中获取数据。
-
尝试将
while ($row = mysqli_fetch_array($query))替换为while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC))并且@b0s3 在他的回答中说缺少'也可能是原因 -
@OfirBaruch 是的,我成功地从数据库中获取数据
-
@UtkarshVishnoi ,我检查了它,但仍然没有成功