我已经发了一个群发邮件功能。我在数据库中插入了3封邮件,但是当我使用群发邮件功能时,邮件会向每封电子邮件发送超过1次的邮件。我试图解决它,但我不能。我猜问题是在循环结束时。
以下是代码:
<html>
<form action="send_mass_mail.php" method="post">
<label>Subject of email:</label><br><input type="text" name="subject" id="subject"/><br>
<label>Body of email:</label><br><input type="textarea" name="body"></label><br>
<input type="submit" name="submit" value="Submit"/>
</form>
</html>
<?php
$user = "";
$password = "";
$host = "";
$dbase = "";
$table = "Mail";
$from= 'tjaabba.com@news.se';//specify here the address that you want email to be sent from
$subject= $_POST['subject'];
$body= $_POST['body'];
// Connection to DBase
mysql_connect($host,$user,$password)
or die("Unable to select database");
mysql_select_db('tjaabba_com');
$query= "SELECT * FROM $table";
$result= mysql_query ($query)
or die ('Error querying database.');
while ($row = mysql_fetch_array($result)) {
$email= $row['email'];
$msg= "Dear mail_form,\n$body";
if(isset($_POST['subject'])){
if(isset($_POST['submit'])){
mail($email, $subject, $body, 'From:' . $from);
echo 'Email sent to: ' . $email. '<br>';
}
}
}
?>
答案 0 :(得分:0)
邮件功能非常不可靠。最好的选择是将此外包给像mailchimp或madrill这样专门从事这项工作的公司。您可以在this链接
中找到更多信息答案 1 :(得分:0)
我的猜测是它在while循环中,但最好的办法是尝试调试问题。您可以使用print_r()和die()函数执行此操作。
我的建议是将这个放在while循环之前,看看你是否有重复的数据,或者是一些不止一次出现的内容。
print_r(mysql_fetch_array($result));
die();
然后复制并粘贴此处出现的内容,但用虚拟电子邮件替换电子邮件,因为我们仍然可以获得有关正在发生的事情的某种想法。或者也许当你这样做时,你会知道发生了什么。