Kategorien
Uncategorized

Phpmailer zweite Mail mit unterschiedlichen Content versenden

Phpmailer gibt uns die Möglichkeit mehrere Mails mit einer Instanz zu versenden. Hier muss darauf geachtet werden, das die function clearAllRecipients aufgerufen werden. Die Funktion löscht alle im addAddress gelisteten E-mail Adressen. Hier ein Beispiel einer phpmailer instanz.

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;


require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
  
  	$mail->CharSet = 'UTF-8';
	$mail->isSMTP();                                            // Send using SMTP
    $mail->Host = 'deinMailHoster';                     
    $mail->SMTPAuth = true;                              
    $mail->Username = 'Username';
    $mail->Password = 'Passwort'; 
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
	$mail->Port = 587;
  
  	$mail->setFrom('test@testmail.com');
    $mail->addAddress('service@testmail.com');

	$customerName = strip_tags(trim($_POST['userName']));
    $email = strip_tags(trim($_POST['Email']));
  
	$mail->isHTML(true);
    $mail->Subject = $subject;

	$mail->Body = "Hier kommt dann der Text für den Email Body rein";

	$mail->send();


	// Hier kommt die Konfiguration für die Zeite Mail.
	// Die Empfänger werden alle auf null gesetzt
	$mail->clearAllRecipients();
  
    $mail->isHTML(true);
    $mail->addAddress($second_email);
    $mail->Subject = $subject;

    // Pfad angeben für das hinterlegte Email template
    $mailer_template = 'mailer-template/content-mail.php';

    // Liest die gesamte datei in einen STring.
    $template = file_get_contents($mailer_template);
  
    // der mail wir der eingelesene String
    // übergeben und in html gewandelt.
    $mail>msgHTML($template);


    // die zweite mail mit anderen Inhalt wir an
    // einen zweiten neuen Recipient versendet.
    $mail->send();
  
}catch(Exception $e){
  echo "Mailer Error {$mail->ErrorInfo}";
    $result = "Error";
}