我想发送不同主题的电子邮件。我有以下代码从数据库中获取邮件主题和消息。
$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';
,邮件已成功发送。为什么邮件功能不让我嵌入从数据库中获取主题的变量?我需要从数据库发送不同主题的邮件。什么是解决方案?
答案 0 :(得分:0)
你写的代码有很多令人困惑的事情。您永远不会检查mysqli_调用和mail()调用中的错误情况。您运行的查询将丢弃除最后一行之外的所有行(如果有)。但是,使用mail()诊断问题的方法不是观看收件箱。在超过99%的情况下,问题在于PHP和MTA之间的接口或MTA配置本身。
您未提供任何详细信息。
我建议你简单地使用:
mail('utopian51@gmail.com', 'test', date('r'));
并开始调试您的MTA。
您可以独立处理批量电子邮件脚本,只需写入文件而不是调用mail(),直到两个部分都正常工作。