我有了一臺名爲mailing_list其中有三列名字,姓氏和電子郵件數據庫發送電子郵件。此表有兩個人 第一個名字是:X1姓是:y1和電子郵件是:[email protected] 第二個名字是:X2姓:Y2和電子郵件是:X2 @雅虎。 com 我正在嘗試使用PHP Mailer,代碼如下,發生了什麼事情是x1獲得了與「Dear x1 y1」相同的電子郵件兩次,第二次與「Dear x2 y2」獲得了相同的電子郵件。第二個名字是x2獲得一次,這很好。我不希望同一封電子郵件不止一次去這個人,我知道循環有問題。請幫忙嗎? 的sendemail.php頁錯誤使用PHP MAILER
<?php
require("config.php");
if(isset($_POST['submit']))
{
require("class.phpmailer.php");
$mail = new PHPMailer();
$query = "SELECT * FROM mailing_list";
$result = mysqli_query($connect, $query)
or die('Error querying the database!');
$mail->IsSMTP();
$mail->Host="smtp.gmail.com";
$mail->Username="myEmailAdd";
$mail->Password="myPassWord"; //SMTP_PASS;
$mail->SMTPAuth=true;
$mail->SMTPSecure = 'tls';
$mail->From ="myEmailAdd";
$mail->FromName ="CSCA";
while($row = mysqli_fetch_array($result))
{
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$to = $row['email'];
$mail->AddAddress($to);
$mail->Subject= $_POST['subject'];
$mail->Body = "Dear $first_name $last_name,\n" . $_POST['body'];
$mail->WordWrap = 50;
if(!$mail->Send())
{
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
else
{
echo 'Message has been sent.';
echo 'Email sent to ' . $to . '<br/>';
}
}
mysqli_close($connect);
}
?>
這裏是電子郵件的形式
<body>
<form method="post" action="sendemail.php">
<label for="subject">Subject of email:</label><br/>
<input type="text" id="subject" name="subject" size="60"/><br/>
<label for="body">Body of mail:</label><br/>
<textarea id="body" name="body" rows="8" cols="60"></textarea><br/>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
當然出現這種情況,是因爲你在你的循環使用'AddAddress'方法。使用方法來代替,只是設置了一個奇異的'要:'地址,而不是添加多個收件人。 – CBroe
我看不出一個明確的方法來添加一個'要:'地址(那會還明確以前的,而這樣做),在短短的一瞥中的文檔 - 但有一個'clearAddresses'方法,所以調用之前你的循環中有'AddAddress',那麼它應該可以正常工作。 – CBroe
如果你願意閱讀類方法的手冊,你不需要問。 – transilvlad