mail functie m.b.v. MySql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nanno Koerts

Nanno Koerts

21/08/2011 13:26:30
Quote Anchor link
Beste mensen,

Ik heb een nieuwsbrief optie op mijn website waarbij ik adressen ophaal uit de database en de content via de while functie laat sturen.

Nu heb ik alleen een probleem.
Het zijn inmiddels 1050 adressen en de server verstuurd ze niet naar alle adressen.
De ene keer zijn het er 350 de andere keer 630.
Ik begrijp niet goed waarom dit gebeurt en hoe ik het op kan lossen dat de server ze naar alle adressen stuurt.
Heeft iemand hier een oplossing voor zonder dat ik me moet gaan verdiepen in een totale verbouwing van mijn script?

Dit script gebruik ik:

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
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$mailonderwerp
= $_POST['Onderwerp'];
$bericht = $_POST['Bericht'];

$select_mail = "SELECT * FROM Nieuwsbrief WHERE Actief ='1'";
$result = mysql_query($select_mail) or die(mysql_error());

while ($row = mysql_fetch_array($result)) {

$email = $row['Email'];
$voornaam = mysql_real_escape_string($row['Voornaam']);
$tussenvoegsel = mysql_real_escape_string($row['Tussenvoegsel']);
$achternaam = mysql_real_escape_string($row['Achternaam']);

$mailbericht = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellpadding="4" cellspacing="0" id="Table1">
Content
</table>
</body>
</html>'
;

# Is the OS Windows or Mac or Linux
if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
    $eol="\r\n";
}
elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
    $eol="\r";
}
else {
    $eol="\n";
}


$headers  = 'From: Nieuwsbrief <[email protected]>'.$eol;
$headers .= 'Reply-To: [email protected]'.$eol;
$headers .= 'MIME-Version: 1.0'.$eol;
$headers .= 'Content-Type: text/html; charset=iso-8859-1'.$eol;
$headers .= 'Content-Transfer-Encoding: 8bit'.$eol;
$headers .= 'X-Mailer: PHP v'.phpversion().$eol;

@
mail($email,stripslashes($mailonderwerp),stripslashes($mailbericht),$headers);
}

?>


Wie heeft er een idee hoe ik dit op kan lossen?

Groet,

Nanno
 
PHP hulp

PHP hulp

21/11/2024 20:40:06
 
Jasper DS

Jasper DS

21/08/2011 13:28:13
Quote Anchor link
- je gebruikt mysql_real_escape_string() op de verkeerde plaats
- je hebt geen nette foutafhandeling voor je query

Misschien kan je server het aantal request's niet aan?
Kijk anders eens naar een mail classe als phpmailer of swiftmailer.
Gewijzigd op 21/08/2011 13:28:48 door Jasper DS
 
Eric Wagener

Eric Wagener

21/08/2011 14:09:42
Quote Anchor link
Meestal heeft dit met de max_execution_time te maken. Ik heb dat zelf opgelost door dat soort mail batches in een crontab te laten draaien. Dan heb je daar geen last van omdat deze dan op 0 staat.
 
Nanno Koerts

Nanno Koerts

21/08/2011 21:47:52
Quote Anchor link
@Jasper: Kan jij mij helpen dan om de code op de juiste manier te plaatsen?
Ik ben zelf geen php programmeur en ben al blij dat ik er iets van snap.

@Eric: Kan je mij helpen om die contrab in mijn code te verwerken?
 
- Ariën  -
Beheerder

- Ariën -

21/08/2011 22:11:27
Quote Anchor link
Die crontab maak je aan op de server, dat verwek je niet in de code.

Zijn er in dit topic posts getrashed ofzo? Zou zweren dat ik wat gezegd had over BCC?
Gewijzigd op 21/08/2011 22:13:17 door - Ariën -
 
Write Down

Write Down

21/08/2011 22:22:10
Quote Anchor link
@Aar
I got the magic, magic :P

@Nanno
Ik denk eerlijk gezegd dat je beter een tutorial bekijkt. Want de manier waarop je het nu vraagt is eerder een vacature. Je dient echt zelf wat initiatief te nemen. Bijvoorbeeld: wat lukt er niet met je cronjob? Weet je wat een cronjob is? (nee: wikipedia?)
Gewijzigd op 21/08/2011 22:27:28 door Write Down
 
Nanno Koerts

Nanno Koerts

21/08/2011 23:13:48
Quote Anchor link
@Write Down
Ik weet niet of de cronjob de beste optie is in mijn geval.
Een snelle en makkelijke oplossing was meer waar ik op hoopte.
Soms kan namelijk iets heel simpel opgelost worden en soms valt dat tegen.
Ik zoek al een tijdje allerlei forums af en heb al heel wat zitten lezen, maar weet niet waar ik moet beginnen. Dus vandaar mijn vraag om hulp.
Iemand die me verder kan helpen met tips, voorbeelden en of uitwerking van.
 
- Ariën  -
Beheerder

- Ariën -

21/08/2011 23:54:31
Quote Anchor link
Als je op bepaalde tijden een mail wil uitvoeren, zijn cronjobs vaak een handig middel hiervoor. Cronjob dus aanmaken, lukt het niet, vertel waar je vast loopt.
 



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.