Goedendag,

Met de PHPMailer class probeer ik gepersonaliseerd mail te versturen. Dit doe ik door eerst alle mailadressen vanuit de database te laden en dan elke mail om de beurt te verzenden.
Elke keer wordt dan een nieuw mail object gemaakt (het oude wordt overschreven).
Zie onderstaand script

--------------------------------------
$mail = null;
$mail = new PHPMailer();
$body = $mail->getFile('mailing.php'); // Locatie van te verzenden html-document
$body = eregi_replace("[\]",'',$body);
$mail->From = "[email protected]";
$mail->FromName = "Anonymous";
$mail->Subject = "Onderwerp";
$mail->MsgHTML($body);

$mail->AddAddress($geg['email']);
$result = $mail->Send();
-------------------

Nu wil ik graag in het te verzenden bericht ('mailing.php') een variabele waarde plaatsen. In het te verzenden bericht staat ' Geachte heer, mevrouw'. Hierna moet de naam komen die uit de database komt. Hoe kan ik dit oplossen met PHPMailer? Want blijkbaar als deze class een bestand inlaad, kan deze geen PHP-code uitvoeren dat in dat bestand staat.
Kan dit via de class geregeld worden, of dien ik dit op een andere manier op te lossen?

mvg,

Chris de Koala
Volgens mij bevat $body rechtstreeks de inhoud van mailing.php als ik naar de lijn eronder kijk. Volgens mij kan je dus in mailing.php {str_naam} oid zetten, en vervolgens iets als $body = str_replace('{str_naam}', 'Wim Mariën', $body);

Volgens mij kan je het oplossen door je $body opnieuw op te halen, en het e-mail adres te veranderen. Ik ga even de classe zoeken en eens kijken

//edit:
http://phpmailer.codeworxtech.com/examples.html
Bedankt voor de reacties.

De tip om de functie 'str_replace' te gebruiken lijkt me een goede tip. Ik had die functie nog nooit eerder gebruikt, maar komt in dit geval goed van pas.

Ik had overigens geen problemen met het versturen van een mailing. Het bovenstaande script werd namelijk in een lus uitgevoerd. De mailtjes worden dus één voor één verzonden.

mvg,

Chris de Koala

Reageren