[英]PHP Do While Sending Emails
我有以下代碼,該代碼發送電子郵件,但它將一封電子郵件嵌入另一封電子郵件中,而不是分別發送,輸出也在下面。
有什么想法嗎?
H。
電子郵件輸出
SMTP Test Email Message
Dear Gary,
Dear Jaime,
Test Message
Here is a quick email test to see what it comes through like. Link: =
Test
Does it do formatting correctly and what is the situation with dual = names appearing etc?
Kind regards,
Gary.
Link: http://
Test
Does it do formatting correctly and what is the situation with dual names appearing etc?
Kind regards,
Gary.
程式碼片段
do {
$dear = "<font face='Arial' size='2'>Dear " . $row["forename"] . ",<br><br></font>";
$email_body = $dear . "<font face='Arial' size='2'>" . stripslashes($body) . "</font><br><br><font face='Arial' size='2'>" . $linky . " <a href='" . $row["link"] . "'> " . $row["link"] . "</a> </font> <br><br><font face='Arial' size='2'>" . stripslashes($body2) . "</font>";
$subject = $sub;
$bcc = "blob.blob@blob.co.uk";
$recipients = $row["email"].",".$bcc;
// Constructing the email
$sender = $bcc;
$recipient = $recipients;
$subject = $subject;
$html = $email_body;
$crlf = "\n";
$headers = array(
'To' => $row["Mail"],
'From' => $sender,
'Return-Path' => $sender,
'Subject' => $subject
);
// Creating the Mime message
$mime = new Mail_mime($crlf);
// Setting the body of the email
//$mime->setTXTBody($text);
$mime->setHTMLBody($html);
// Set body and headers ready for base mail class
$body = $mime->get();
$headers = $mime->headers($headers);
// SMTP authentication params
$smtp_params["host"] = "scr.emserv.com";
$smtp_params["port"] = "25";
$smtp_params["auth"] = true;
$smtp_params["username"] = "blob.blob@blob.co.uk";
$smtp_params["password"] = "blob";
// Sending the email using smtp
$mail =& Mail::factory("smtp", $smtp_params);
sleep(2);
$result = $mail->send($recipient, $headers, $body);
for($i=0;$i<$elements1;$i++){
$bar1->increase(); //calls the bar with every processed element
$bar1->setMessage('Sending emails (2 second delay between each): '.(($i+1)*$sent).'%');
}
if($row["sent"]=='YES'){
$reminder = $row["reminder"] + 1;
$update = mysql_query("UPDATE $table SET reminder = $reminder WHERE respondent_id = " . $row["respondent_id"] . " ") or die("Could not update record<br>".mysql_error());
}else
$update = mysql_query("UPDATE $table SET sent = 'YES' WHERE respondent_id = " . $row["respondent_id"] . " ") or die("Could not update record<br>".mysql_error());
} while ($row = mysql_fetch_assoc($results));
$bar1->setMessage('Emails have now been sent: 100%');
}
您看到此問題的原因是您沒有清除$ body變量。 每次循環時,基本上都將其附加到此行的$ email_body變量中:
$email_body = $dear . "<font face='Arial' size='2'>" . stripslashes($body) ...
再往下,您將$ body設置為整個消息:
$body = $mime->get();
get()以字符串形式返回整個消息 。 您原本會使用$ body也沒有任何意義,因為直到在我列出的第一行之后,它才在do while循環中初始化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.