【问题标题】:how to send two different messages to two different users phpmailer如何将两条不同的消息发送给两个不同的用户phpmailer
【发布时间】:2017-03-01 13:37:06
【问题描述】:

我正在向两个不同的人发送邮件,两条不同的消息,一条给用户,一条给管理员。

  $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();

但作为用户,我收到了两次消息。如何向两个不同的用户发送两条不同的消息。

【问题讨论】:

    标签: php phpmailer


    【解决方案1】:

    在为第二封邮件添加新地址之前,您需要清除收件人列表。如果您不这样做,第一个收件人也会收到第二个消息:

    ...
    $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】:

    你可以启动两次phpmailer类。

    $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();
    

    这应该也可以:

    $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();
    

    【讨论】:

      猜你喜欢
      • 2021-11-08
      • 2021-10-15
      • 2021-08-03
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      相关资源
      最近更新 更多