Om de nieuwsbrief van mijn hockeyclub te versturen gebruik ik phpmailer i.c.m. de smtp-server van Gmail. Ik gebruik op de domeinnaam Google Apps for Domain. Het voordeel hiervan is dat alle verstuurde berichten bij de Sent Items komen te staan van mijn eigen account.
Nu ik echter 130 leden een berichtje wil sturen, is 'ie 10 minuten bezig. Het werkt prima, maar erg snel is het niet.
Hoe zorg ik dat het script toch sneller werkt? Ik stuur nu iedereen een aparte mail, adressen in de (b)cc zetten is geen optie, omdat ik de mails personaliseer ('beste $naam, etc.). Een andere smtp-server gebruiken is misschien ook een optie, maar echt een oplossing is dat ook niet.
Ik heb al ingesteld dat hij de smtp-connectie pas moet afsluiten als alles verstuurd is. Dit maakt wel een beetje verschil, maar 10 minuten is natuurlijk nog steeds erg lang. Hoe kan ik zien waar hij zo lang mee bezig is?
Nu ik echter 130 leden een berichtje wil sturen, is 'ie 10 minuten bezig. Het werkt prima, maar erg snel is het niet.
Hoe zorg ik dat het script toch sneller werkt? Ik stuur nu iedereen een aparte mail, adressen in de (b)cc zetten is geen optie, omdat ik de mails personaliseer ('beste $naam, etc.). Een andere smtp-server gebruiken is misschien ook een optie, maar echt een oplossing is dat ook niet.
Ik heb al ingesteld dat hij de smtp-connectie pas moet afsluiten als alles verstuurd is. Dit maakt wel een beetje verschil, maar 10 minuten is natuurlijk nog steeds erg lang. Hoe kan ik zien waar hij zo lang mee bezig is?
PHP:
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
26
27
28
29
30
31
32
33
34
35
36
| include("class.phpmailer.php"); include("class.smtp.php"); $mail=new PHPMailer(); $mail->IsSMTP(); $mail->SMTPKeepAlive = true; // keep alive $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port $mail->Username = "nieuwsbrief@hcbedum.nl"; // GMAIL username $mail->Password = "**********"; // GMAIL password $mail->From = "nieuwsbrief@hcbedum.nl"; $mail->FromName = "Hockey Club Bedum"; $mail->Subject = $subject; $mail->Body = nl2br(htmlentities($tekst)); $mail->AltBody = "Je kunt deze mail helaas niet openen, omdat je e-mailprogramma geen HTML ondersteunt."; $mail->IsHTML(true); // send as HTML $query = mysql_query("SELECT * FROM `leden` WHERE email != ''"); while($list = mysql_fetch_object($query)) { $mail->ClearAddresses(); $mail->AddAddress("$list->email"); if(!$mail->Send()) { die($mail->ErrorInfo); } } echo "<p>Het bericht is naar alle leden gestuurd!</p>"; $mail->SmtpClose(); |