问题
I am sending mails to two different persons, two different messages one for user and one for admin.
$message1='hello user'
$message2='hello admin'
$email = 'user@email.com'
$adminemail = 'admin@email.com';
require 'PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->isHTML();
$mail->IsSMTP();
$mail->setFrom('admin@mysite.com', 'admin site');
$mail->AddAddress( $email);
$mail->Subject = $subject;
$mail->Body =$message1;
$mail->Send();
//message for admin
$mail->Body =$message2;
//$adminemail = $generalsettings[0]["admin_email"];
$mail->AddAddress($adminemail);
$mail->Send();
But as a user I am receiving the message twice.. How to send two different messages to two different users.
Thanks in advance
回答1:
You need to clear the recipients list before you add the new address for the second message. If you don't do that, the first recipient will receive the second message as well:
...
$mail->Body =$message1;
$mail->Send();
//message for admin
// Remove previous recipients
$mail->ClearAllRecipients();
// alternative in this case (only addresses, no cc, bcc):
// $mail->ClearAddresses();
$mail->Body =$message2;
//$adminemail = $generalsettings[0]["admin_email"];
// Add the admin address
$mail->AddAddress($adminemail);
$mail->Send();
回答2:
You can initiate phpmailer class two times.
$message1='hello user'
$message2='hello admin'
$email = 'user@email.com'
$adminemail = 'admin@email.com';
require 'PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->isHTML();
$mail->IsSMTP();
$mail->setFrom('admin@mysite.com', 'admin site');
$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->Body = $message1;
$mail->Send();
$mail2 = new PHPMailer(true);
$mail2->isHTML();
$mail2->IsSMTP();
$mail2->setFrom('admin@mysite.com', 'admin site');
$mail2->AddAddress($adminemail);
$mail2->Subject = $subject;
$mail2->Body = $message2;
$mail2->Send();
This should work too:
$message1='hello user'
$message2='hello admin'
$email = 'user@email.com'
$adminemail = 'admin@email.com';
require 'PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->isHTML();
$mail->IsSMTP();
$mail->setFrom('admin@mysite.com', 'admin site');
$mail->AddAddress($email);
$mail->Subject = $subject;
$mail->Body = $message1;
$mail->Send();
$mail->ClearAddresses();
$mail->AddAddress($adminemail);
$mail->Body = $message2;
$mail->Send();
来源:https://stackoverflow.com/questions/42533245/how-to-send-two-different-messages-to-two-different-users-phpmailer