Ankündigung

Einklappen
Keine Ankündigung bisher.

PHPmailer 2te E-Mail

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHPmailer 2te E-Mail

    Guten Morgen zusammen,

    ich steige gerade von der mail() Methode auf PHPmailer um. Jetzt meine Frage:

    Wie versende ich am geschicktesten 2 E-Mails mit unterschiedlichem Inhalt und anderem Empfänger.

    Mit der mail() Methode habe ich einfach ein 2tes mal mail() in einer verschachtelten If Schleife aufgerufen.

    Hier weiss ich jetzt gerade nicht wie. Der Code unten versendet nur die erste E-Mail: Ausgabe == cust-mail: Something\'s went wrong!'

    PHP-Code:
    //mail 1
    $compmailer = new PHPMailer;

    $compmailer->CharSet 'UTF-8';
    $compmailer->isSMTP();
    $compmailer->Host 'XXX';
    $compmailer->SMTPAuth false;
    $compmailer->Port 25;
    $compmailer->From $sender;
    $compmailer->FromName "{$name} {$surname}";
    $compmailer->addAddress($receiver"XXX");
    $compmailer->isHTML(true);
    $compmailer->Subject "XXX";
    $compmailer->Body $compartment_msg;
    $compmailer->AltBody strip_tags($compmailer->Body);

    //mail 2
    $custmailer = new PHPMailer;

    $custmailer->CharSet 'UTF-8';
    $custmailer->isSMTP();
    $custmailer->Host 'XXX';
    $custmailer->SMTPAuth false;
    $custmailer->Port 25;
    $custmailer->From $receiver;
    $custmailer->FromName "XXX";
    $custmailer->addAddress($sender"{$name} {$surname}");
    $custmailer->isHTML(true);
    $custmailer->Subject "XXX";
    $custmailer->Body $customer_msg;
    $custmailer->AltBody strip_tags($custmailer->Body);


    if (!
    $compmailer->send()) {
        echo 
    'comp-mail: Something\'s went wrong!';
        exit;   
    }else{
        if (!
    $custmailer->send()) {
            echo 
    'cust-mail: Something\'s went wrong!';
            exit;
        }


  • #2
    PHPMailer sollte eigentlich eine Exception werfen die du mit try/catch abfangen kannst.
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Okey, bekomme mit dem Script: ...

      PHP-Code:
      try{
      //mail 1
      $compmailer = new PHPMailer(true);

      $compmailer->CharSet 'UTF-8';
      $compmailer->isSMTP();
      $compmailer->Host 'XXX';
      $compmailer->SMTPAuth false;
      $compmailer->Port 25;
      $compmailer->From $sender;
      $compmailer->FromName "{$name} {$surname}";
      $compmailer->addAddress($receiver"XXX");
      $compmailer->isHTML(true);
      $compmailer->Subject "XXX";
      $compmailer->Body $compartment_msg;
      $compmailer->AltBody strip_tags($compmailer->Body);
      $compmailer->send();
      //mail 2
      $custmailer = new PHPMailer(true);

      $custmailer->CharSet 'UTF-8';
      $custmailer->isSMTP();
      $custmailer->Host 'XXX';
      $custmailer->SMTPAuth false;
      $custmailer->Port 25;
      $custmailer->From $receiver;
      $custmailer->FromName "XXX";
      $custmailer->addAddress($sender"{$name} {$surname}");
      $custmailer->isHTML(true);
      $custmailer->Subject "XXX";
      $custmailer->Body $customer_msg;
      $custmailer->AltBody strip_tags($custmailer->Body);
      $custmailer->send();
      }catch(
      Exception $ex){
      echo 
      '<pre>'.$ex.'</pre>';
          exit;

      diese Exception, ich muss aber gestehen, dass ich gerade nur Bahnhof verstehe /-: Beide Message Bodys sind doch gesetzt...

      PHPMailer\PHPMailer\Exception: Message body empty in /var/www/html/test2/PHPMailer/src/PHPMailer.php:1443 Stack trace: #0 /var/www/html/test2/PHPMailer/src/PHPMailer.php(134: PHPMailer\PHPMailer\PHPMailer->preSend() #1 /var/www/html/test2/ctrl/mailer.php(281): PHPMailer\PHPMailer\PHPMailer->send() #2 {main}
      Viele Grüße

      Kommentar


      • #4
        Ahhhua sorry, war nur ein fehlendes Zeichen in der $customer_msg - Variable. (bei mir in der Umgebung)

        Funktioniert jetzt Danke!!

        Kommentar


        • #5
          Es ist m.E. nicht notwendig, für jede zu sendende Mail eine neue PHP-Mailer-Instanz zu erstellen ( bei 2 spielt da noch keine Rolle). Es reicht dann aus die entsprechenden Attribute neu zu setzen. Für die Adressen muss vor jeder neuen Mail ClearAllRecipients( ); gerufen werden bevor die neuen zugefügt werden.

          Kommentar

          Lädt...
          X