从 PhpMailer 发送的重复邮件
Duplicate mails sent from PhpMailer
我创建了一个代码,可以将邮件发送给不同身体的不同人,但前提是满足某些条件。我的代码如下:
set_time_limit(300);
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "*********";
$mail->SetFrom('*********');
$mail->Subject = "System Change";
$add = array("a", "b");
foreach ($add as $address) {
$mail->clearAttachments();
$mail->clearAllRecipients();
if ($Credit == 'N' && $CMU == 'N') {
if ($Ops_Approval == 'Approved' && $Risk_Approval == 'Approved' && $Finance_Approval == 'Approved') {
if ($SeniorManagement == 'Y') {
if ($address == "a") {
$mail->AddAddress('********');
$mail->MsgHTML("Mail1");
$mail->send();
if ($mail->Send()) {
echo "Mail 1";
} else echo "ERROR IN SENDING MAILS";
exit;
}
if ($address == "b") {
$mail->AddAddress('****');
$mail->MsgHTML("Mail2");
$mail->send();
if ($mail->Send()) {
echo "Mail 2";
} else echo "ERROR IN SENDING MAILS";
exit;
}
}
}
}
}
什么在起作用 - 正在发送邮件。
什么不起作用 - 两封邮件具有相同的 body 即 Mail1 。
我尝试创建不同的 if 循环,但得到相同的结果。感谢任何建议:)
我们认为没有发送 2 封邮件,因为您在 if 而不是 else 部分写了 exit。
试试这个:-
if ( $address == "a" ) {
$mail->AddAddress('********');
$mail->MsgHTML("Mail1");
//$mail->send();
if($mail->Send()) {
echo "Mail 1";
} else {
echo "ERROR IN SENDING MAILS";
exit;
}
}
if ( $address == "b" ) {
$mail->AddAddress('****');
$mail->MsgHTML("Mail2");
//$mail->send();
if($mail->Send()) {
echo "Mail 2";
} else {
echo "ERROR IN SENDING MAILS";
exit;
}
}
您在 if 中再次使用 Send()
两次。您可以删除 if($mail->send()){
上面的行。另外别忘了把else后面的代码放在括号内,否则不会执行exit。
我创建了一个代码,可以将邮件发送给不同身体的不同人,但前提是满足某些条件。我的代码如下:
set_time_limit(300);
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "*********";
$mail->SetFrom('*********');
$mail->Subject = "System Change";
$add = array("a", "b");
foreach ($add as $address) {
$mail->clearAttachments();
$mail->clearAllRecipients();
if ($Credit == 'N' && $CMU == 'N') {
if ($Ops_Approval == 'Approved' && $Risk_Approval == 'Approved' && $Finance_Approval == 'Approved') {
if ($SeniorManagement == 'Y') {
if ($address == "a") {
$mail->AddAddress('********');
$mail->MsgHTML("Mail1");
$mail->send();
if ($mail->Send()) {
echo "Mail 1";
} else echo "ERROR IN SENDING MAILS";
exit;
}
if ($address == "b") {
$mail->AddAddress('****');
$mail->MsgHTML("Mail2");
$mail->send();
if ($mail->Send()) {
echo "Mail 2";
} else echo "ERROR IN SENDING MAILS";
exit;
}
}
}
}
}
什么在起作用 - 正在发送邮件。 什么不起作用 - 两封邮件具有相同的 body 即 Mail1 。 我尝试创建不同的 if 循环,但得到相同的结果。感谢任何建议:)
我们认为没有发送 2 封邮件,因为您在 if 而不是 else 部分写了 exit。 试试这个:-
if ( $address == "a" ) {
$mail->AddAddress('********');
$mail->MsgHTML("Mail1");
//$mail->send();
if($mail->Send()) {
echo "Mail 1";
} else {
echo "ERROR IN SENDING MAILS";
exit;
}
}
if ( $address == "b" ) {
$mail->AddAddress('****');
$mail->MsgHTML("Mail2");
//$mail->send();
if($mail->Send()) {
echo "Mail 2";
} else {
echo "ERROR IN SENDING MAILS";
exit;
}
}
您在 if 中再次使用 Send()
两次。您可以删除 if($mail->send()){
上面的行。另外别忘了把else后面的代码放在括号内,否则不会执行exit。