[PHPMailer] Dynamische mailing - juiste manier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andries Louw Wolthuizen

Andries Louw Wolthuizen

17/10/2007 15:23:00
Quote Anchor link
Ik wil PHPMailer gebruiken voor het verzenden van mailings, dus bijvoorbeeld nieuwsbrieven. Hierbij genereer ik elke mail dynamisch, zodat er bijvoorbeeld eigenschappen van de ontvanger in kunnen komen te staan (naam, man/vrouw). De mail wordt vervolgens aan enkele 1000'den ontvangers verzonden, waarbij ik 50 per minuut aanhoud (techniek daarvoor bespreek ik verder niet).

Mijn probleem:
Wat is de beste manier om de class PHPMailer aan te roepen, ik verzend dus elke mail met een unieke titel, onderwerp, en ontvanger. 50 per minuut (1 keer per minuut wordt dus het script aangeroepen, waarna er 50 mails verzonden worden).

Ik kan elke keer de class opnieuw aanroepen ($mail = new PHPMailer();) en vervolgens bericht, onderwerp, ontvanger opgeven, en dan een $mail->Send() uitvoeren. Echter denk ik dat 50x per minuut de zelfde class laden niet erg bevorderlijk is voor de load..

Mijn originele idee is dus als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
    while($email = mysql_fetch_assoc($result_1)){
        $tijdelijkeVars = array('/%naam%/','/%email%/');
        $mailVars = array(stripslashes($email['naar_naam']),$email['naar_adres']);
        $onderwerp =preg_replace($tijdelijkeVars, $mailVars, $email['onderwerp']);
        $bericht = preg_replace($tijdelijkeVars, $mailVars, $email['bericht']);
        
        $mail = new PHPMailer();
        $mail->ClearAddresses();
        
        $mail->From = $email['van_adres'];
        $mail->FromName = $email['van_naam'];
        $mail->AddReplyTo = $email['van_adres'];
        $mail->AddAddress($email['naar_adres'], $email['naar_naam']);
        $mail->Subject = $onderwerp;
        $mail->Body         = $bericht;
        $mail->AltBody         = 'Er is geen plaintext equivalent van deze mailing.';

        if ($mail->Send() == true){
            mysql_query("UPDATE nd_ma SET nd_ma.status = 1, verzonden = NOW() WHERE nd_ma.id = '".$email['mail_id']."'");
        }
else{
            mysql_query("UPDATE nd_ma SET nd_ma.status = 2, error = '".$mail->ErrorInfo."', verzonden = NOW() WHERE nd_ma.id = '".$email['mail_id']."'");
        }
    }

?>


Is er iemand met verstand van PHPMailer, die mij kan vertellen hoe ik dit beter kan doen? Ik moet dus voor elke mail alle variabelen opnieuw kunnen genereren/opgeven, maar wil niet de class 50x per minuut hoeven laden/oproepen.

Oplossingen met SMTP connecties openen zijn ook welkom (dus connectie openen, en vervolgens alle mails verzenden via die connectie), mits het maar via de PHPMailer class gaat.

Ik heb geen idee of dit bericht in PHP algemeen hoort, of in OOP.
 
PHP hulp

PHP hulp

29/11/2020 15:22:06
 
Pim Vernooij

Pim Vernooij

17/10/2007 16:02:00
Quote Anchor link
Check het eerste voorbeeld op de documentatie site eens http://phpmailer.sourceforge.net/extending.html
 
Jan geen

Jan geen

17/10/2007 16:05:00
Quote Anchor link
Gewoon even bij phpmailer kijken, binnen 10sec gevonden: phpmailer
eerste stukje zou je al moeten verder helpen.

new PHPMAILER()

while lus {
- vars toewijzen
- send
- clearAdresses()
- clearAttachements()
}

Edit:
was me al weer iemand voor
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
 
Andries Louw Wolthuizen

Andries Louw Wolthuizen

17/10/2007 16:07:00
Quote Anchor link
En ik kan gewoon alle vars overschrijven? Dus ook de From?
 
Jan geen

Jan geen

17/10/2007 16:26:00
Quote Anchor link
ja
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.