PHPMailer - hoge load ?
Ik heb een brak nieuwsbrief systeem en aangezien ik een database met 5000 adressen heb wil ik een ander e-mailscript maken.
Ik ben al een paar uurtjes aan het rond zoeken en heb PHPMailer getest. Het werkt opzich wel goed alleen nu wil ik van jullie weten hoe ik het beste de e-mailadressen in het mailscript zet.
Met het beste, bedoel ik zodat het script niet voor een extreme hoge load zorgt etc etc.
Heb dit net ff gemaakt, zorgt dit voor een hele hoge load of hoe kan ik anders de e-mailadressen uit de database halen? Wat is de beste manier volgens jullie ?:
Code (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
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
<?php
$rcptTo = '[email protected]';
$fromName = "HalloHoi";
$fromEmail = "[email protected]";
$subject = "Nieuwsbrief ? ";
$mail_body = "<br>hoi <br>hoasdf<br><br>groeten ";
include 'phpmailer/class.phpmailer.php';
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$rcptTo = $obj['email'];
$mail = new PHPMailer();
$mail->From = $fromEmail;
$mail->FromName = $fromName;
$mail->AddAddress($rcptTo);
$mail->Subject = $subject;
$mail->Body = $mail_body;
$mail->IsHTML(true);
if(!$mail->Send()) $results = 'Error message';
else $results = 'Success message';
echo "$results";
}
?>
$rcptTo = '[email protected]';
$fromName = "HalloHoi";
$fromEmail = "[email protected]";
$subject = "Nieuwsbrief ? ";
$mail_body = "<br>hoi <br>hoasdf<br><br>groeten ";
include 'phpmailer/class.phpmailer.php';
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$rcptTo = $obj['email'];
$mail = new PHPMailer();
$mail->From = $fromEmail;
$mail->FromName = $fromName;
$mail->AddAddress($rcptTo);
$mail->Subject = $subject;
$mail->Body = $mail_body;
$mail->IsHTML(true);
if(!$mail->Send()) $results = 'Error message';
else $results = 'Success message';
echo "$results";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Martin vd B
en 2:
Je gebruikt heel vaak variabelen, die je gewoon letterlijk kopieerd. Dit hoeft niet, en kost ook voor meer load.
Je moet gewoon de AddAdress methode in de loop zeten, verder niets.
En dat leidt niet tot een hoge load op de server ?
Code (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
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
<?php
$rcptTo = '[email protected]';
$fromName = "HAlloHoi";
$fromEmail = "[email protected]";
$subject = "Nieuwsbrief ? ";
$mail_body = "<br>hoi <br>hoasdf<br><br>groeten ";
include 'phpmailer/class.phpmailer.php';
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$rcptTo = $obj['email'];
$mail = new PHPMailer();
$mail->From = $fromEmail;
$mail->FromName = $fromName;
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$mail->AddAddress($obj['email'];);
}
$mail->Subject = $subject;
$mail->Body = $mail_body;
$mail->IsHTML(true);
if(!$mail->Send()) $results = 'Error message';
else $results = 'Success message';
echo "$results";
?>
$rcptTo = '[email protected]';
$fromName = "HAlloHoi";
$fromEmail = "[email protected]";
$subject = "Nieuwsbrief ? ";
$mail_body = "<br>hoi <br>hoasdf<br><br>groeten ";
include 'phpmailer/class.phpmailer.php';
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$rcptTo = $obj['email'];
$mail = new PHPMailer();
$mail->From = $fromEmail;
$mail->FromName = $fromName;
$sql = mysql_query("SELECT * FROM users");
while ($obj = mysql_fetch_assoc($sql)) {
$mail->AddAddress($obj['email'];);
}
$mail->Subject = $subject;
$mail->Body = $mail_body;
$mail->IsHTML(true);
if(!$mail->Send()) $results = 'Error message';
else $results = 'Success message';
echo "$results";
?>
Gewijzigd op 01/01/1970 01:00:00 door Martin vd B
En waarom SELECT * als je alleen $obj['email'] gebruikt?
Verspreid het over de dag, lijkt mij een goede oplossing.
Hmm, dat zou ik zoiets moeten maken:
1. Ik maak een nieuwsbrief, haal de e-mailadressen op, sla de e-mailadressen op in een andere tabel samen met de HTML voor de nieuwsbrief.
2. Ik maak een cronjob-script die de mailtjes en de adressen ophaalt uit de tabel die ik zojuist heb gemaakt en verzend die. Bij elke keer verwijder ik de de rijen uit de tabel die verzonden zijn.
Zoiets zou ik dus maken moeten als ik cronjobs wil gaan gebruiken ?
Ik vraag me eigenlijk af of je niet met BCC kunt werken, en dan per 100 adressen ofzo, let er wel op dat je BCC gebruikt, en dus niet CC (i.v.m. spam enzo).
Ik heb ergens gelezen dat je met BCC ook zomaar op de spam lijst komt te staan.
BCC is niet te traceren voor de gene waar je het heenstuurt, maar enkel door de applicatie die de mail verder afhandeld (je mailserver?!). Als een ieder precies dezelfde mail moet ontvangen is dat lijkt me een prima oplossing om in 1x 50 adressen in de BCC te zetten. Dat wordt vermoedelijk nog wel geaccepteerd door je mailserver.
Als je met BCC gaat werken is het welnodig je eigenadres is heet Aan veld te zetten. Het heeft ook meteen als nadeel dat de ontvanger niet duidelijk ziet aan wie het bericht is gestuurd.
Hotmail doet bij mij altijd raar, helft van de mailtjes komen niet aan etc.
Terwijl er bij mijn normale e-mailaccounts wel gewoon aankomen.
Waar ligt dit aan? Hoe kan ik ervoor zorgen dat ook hotmail abonnees mijn e-mail krijgen ?