PHPMailer - hoge load ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Martin vd B

Martin vd B

09/02/2007 18:52:00
Quote Anchor link
Hoi beste PHP'ers :)

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)
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
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";
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Martin vd B
 
PHP hulp

PHP hulp

28/11/2024 02:52:28
 
Niek s

niek s

09/02/2007 19:18:00
Quote Anchor link
Ik denk dat je de send pas moet doen na dat de hele while is doorgelopen?

en 2:
Je gebruikt heel vaak variabelen, die je gewoon letterlijk kopieerd. Dit hoeft niet, en kost ook voor meer load.
 
Martijn B

Martijn B

09/02/2007 19:43:00
Quote Anchor link
Je moet gewoon de AddAdress methode in de loop zeten, verder niets.
 
Martin vd B

Martin vd B

09/02/2007 20:10:00
Quote Anchor link
En dat leidt niet tot een hoge load op de server ?
 
Martin vd B

Martin vd B

09/02/2007 20:12:00
Quote Anchor link
Dus iets als dit zou al moeten werken :


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
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";

?>
Gewijzigd op 01/01/1970 01:00:00 door Martin vd B
 

09/02/2007 20:24:00
Quote Anchor link
Als jij 5000 keer achterelkaar nonstop je SMTP server aanspreekt houd deze het niet bij. Gebruik een rust pauze van 3 seconden per 20 berichten.
Laatst was hier een topic over...
Gewijzigd op 01/01/1970 01:00:00 door
 
- SanThe -

- SanThe -

09/02/2007 20:32:00
Quote Anchor link
En waarom SELECT * als je alleen $obj['email'] gebruikt?
 
Arjan Kapteijn

Arjan Kapteijn

09/02/2007 20:34:00
Quote Anchor link
Verspreid het over de dag, lijkt mij een goede oplossing.
 
Martin vd B

Martin vd B

09/02/2007 20:39:00
Quote Anchor link
Met cronjobs bedoel je ?

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 ?
 
Andries Louw Wolthuizen

Andries Louw Wolthuizen

09/02/2007 21:46:00
Quote Anchor link
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).
 
Martin vd B

Martin vd B

09/02/2007 22:02:00
Quote Anchor link
Ik heb ergens gelezen dat je met BCC ook zomaar op de spam lijst komt te staan.
 
Martijn Wieringa

Martijn Wieringa

10/02/2007 08:43:00
Quote Anchor link
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.
 

10/02/2007 10:29:00
Quote Anchor link
BCC is voor de mailserver eigenlijk ook niks anders als een nieuw bericht.
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.
 
Martin vd B

Martin vd B

10/02/2007 12:07:00
Quote Anchor link
Nou heb ik iets gemaakt met cronjobs, maar nu is het probleem dat de mails weer niet aankomen bij mijn Hotmail-adres.

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 ?
 



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.