[php] mail functie stuur meerdere mails

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een klein probleempje met de functie mail(). Wat ik wil is naar 2500 members 1 email sturen. Maar als ik het met de code hier beneden geplaatst doe dan stuurt ie de mail ong. 5x naar elk persoon dus 2500 x 5 emails. Wat doe ik fout en ik heb al gezocht :(


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

include "config.php";

$i = 0;

$query = mysql_query("SELECT * FROM smile_members ORDER BY id ASC LIMIT 0,2500");


while ($show = @ mysql_fetch_array($query))
{
    $message = "Hier bericht";
 
    mail("$show[username] <$show[email]>","Onderewrp","$message"," <info@.com>");
    $i++;
}

print "$i email send!";

?>

[ Voor 11% gewijzigd door Verwijderd op 01-01-2009 15:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou niet weten waarom hij alles 5 keer verstuurt, maar is het sowieso niet handiger om alle emails in de BCC: te zetten en dan de mail 1 keer te versturen?
Ik denk dat dat je probleem ook oplost..

zoiets als:
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
<?php 

include "config.php"; 

$i = 0; 

$query = mysql_query("SELECT * FROM smile_members ORDER BY id ASC LIMIT 0,2500"); 

$headers = "MIME-Version: 1.0\r\nContent-type: text/plain;harset=iso-8859-1\r\n";
$headers .= "From: ".$fromname." <".$fromemail.">\r\n";

while ($show = @ mysql_fetch_array($query)) 
{ 
    $ontvangers .= $show["email"]. ", ";
    $i++; 
} 

$headers .= "Bcc: ".$ontvangers."\r\n";
$message = "Hier bericht";

mail(" <info@msgshit.com>","Onderwerp","$message",$headers); 


print "email send to $i people!"; 

?>

[ Voor 75% gewijzigd door Verwijderd op 06-02-2004 17:05 . Reden: voorbeeldje toegevoegd ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Weet je zeker dat elk emailadres maar 1x in je tabel staat?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja dat heb ik net nog even gecontroleerd alles maar 1 keer.

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
waarom zit er een i++ in? Dit is toch niet nodig in een while loop.

och laat maar, ik zit te suffen. Heeft niks met functie te maken maar voor een statusbalkje of zoiets.

[ Voor 45% gewijzigd door Noork op 06-02-2004 17:14 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 06 februari 2004 @ 16:57:
Ik zou niet weten waarom hij alles 5 keer verstuurt, maar is het sowieso niet handiger om alle emails in de BCC: te zetten en dan de mail 1 keer te versturen?
Ik denk dat dat je probleem ook oplost..

zoiets als:
PHP:
1
2
3
<?php 

....
Das eventueel wel een optie, dan stuurt ie gewoon 1 email naar al die adressen. Bedankt zal eens kijken of dat wel werkt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Noork schreef op 06 februari 2004 @ 17:13:
waarom zit er een i++ in? Dit is toch niet nodig in een while loop.
dat is gewoon om te tellen hoeveel mails er gestuurd zijn het is niet echt nodig.

;) oke

[ Voor 3% gewijzigd door Verwijderd op 06-02-2004 17:16 ]


Acties:
  • 0 Henk 'm!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 19-09 14:48
Die i zal wel debug zijn? Hoeveel is die volgens die echo aan het eind?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Obliterator schreef op 06 februari 2004 @ 17:15:
Die i zal wel debug zijn? Hoeveel is die volgens die echo aan het eind?
kep daar niet op gewacht want duurde aardig lang voordat het geladen was (was op 50% geladen voordat ik pagina sloot), ik kreeg toen al in me eigen mail 5 x dezelfde mail net zoals bij een ander email adres bij een vriend.

Acties:
  • 0 Henk 'm!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 19-09 14:48
Ok, dan met een LIMIT 0,10 of iets dergelijks, waarbij je zelf in die eerste 10 staat?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Obliterator schreef op 06 februari 2004 @ 17:20:
Ok, dan met een LIMIT 0,10 of iets dergelijks, waarbij je zelf in die eerste 10 staat?
ja dat heb ik ook geprobeerd maar dan stuurt ie gewoon 1 mailtje. naar die 10 personen.

Acties:
  • 0 Henk 'm!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
en doe ook eens een distinct.

[ Voor 4% gewijzigd door Nielsz op 06-02-2004 17:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nielsz schreef op 06 februari 2004 @ 17:25:
en doe ook eens een distinct.
denk niet dat dat veel helpt elke mail komt maar 1 keer voor. Kan dit niet liggen aan de sendmail die de server gebruikt?

Acties:
  • 0 Henk 'm!

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
Verwijderd schreef op 06 februari 2004 @ 16:57:
Ik zou niet weten waarom hij alles 5 keer verstuurt, maar is het sowieso niet handiger om alle emails in de BCC: te zetten en dan de mail 1 keer te versturen?
Ik denk dat dat je probleem ook oplost..
.. behalve dat je dan gegarandeerd door veel spamfilters wordt tegengehouden. "Hee - deze e-mail is niet naar de eigenaar gestuurd, zal wel spam zijn". Hotmail is hier een goed voorbeeld van. Die flikkert mails 4 van de 5 keer al in de Junk mail folder als je gewoon in een rijtje CC's staat. BCC's zijn vrijwel kansloos bij Hotmail.

Wil je goede kans hebben dat mails aankomen en spamfilters overleven, dan wordt het toch al snel per stuk versturen. Maar doe jezelf dan wel een lol en bouw er een timertje in en een javascript-refresher. Haal er telkens een stuk of wat op (20, 50 of zo), vink in de database aan wanneer een email is afgehandeld (zo kan een adres nooit twee keer een mail krijgen, ook niet als je de pagina telkens refresht) en als de boel is verstuurd laat de de pagina zichzelf na een aantal seconden refreshen.

@TS: je hebt niet toevallig de pagina een paar keer gerefreshed omdat je niks zag verschijnen? Want bij elke refresh stuurt ie opnieuw mailtjes naar iedereen in de lijst. Als het bij LIMIT 0,10 wel werkt zou ik geen andere reden kunnen verzinnen waarom het bij LIMIT 0,2500 op hol zou slaan.

Ik spoor veilig of ik spoor niet.

Pagina: 1