Avatar billede nicocarlos Nybegynder
30. november 2004 - 00:45 Der er 14 kommentarer og
1 løsning

email til alle mail addresser i mySQL db med php

Hejsa.
Jeg skal sende email til samtlige email addresser i en tabel jeg har, der er omkring 1000, hvordan kan det lade sig gøre og skal helst ikke afleveres som spam.


takker
Avatar billede morteeart Nybegynder
30. november 2004 - 01:32 #1
Brug et loop

og kig på php.net/mail , specielt den del omkring headers
så får du fin title på mailen, og så bliver den nok ikke opfatter som spam lige uden videre.
Avatar billede morteeart Nybegynder
30. november 2004 - 01:51 #2
Men så mange vil self kræve meget serverkraft.
måske skulle man lave flere loops f.eks. 100 af gangen.
og så et overordenet loop til at styre antallet.

Altså for at undgå at serveren tror det er uendeligt loop, og så stopper der.
Avatar billede nicocarlos Nybegynder
30. november 2004 - 02:28 #3
Kan du vise et eksempel med det loop?
Avatar billede morteeart Nybegynder
30. november 2004 - 02:35 #4
noget ala

<?
$headers .= "From: Nicocarlos <dinegen@email.dk>\r\n";

$hent_emails = @mysql_query("SELECT email FROM emails");
while($mail = @mysql_fetch_arrray($hent_emails))
{
mail($mail['email'], "emne" , "hejhej dette her kommertil at slå 1000 gange", $headers);
}
?>

Den måde vil bare køre det igennem 1000 gange.
Mht. at lave mindre loops, kan jeg ikke lige umidbart strukturer en løsning (tror jeg vil til at i seng)
Men noget med (SQL)

LIMIT 0,100
og næste gange
LIMIT 101,201
Avatar billede morteeart Nybegynder
30. november 2004 - 02:39 #5
prøvede lige lidt på min egen localhost server, og den var ikke så glad igen for at kører mail kommandoen igennem 1000 gange.

Så der skal nok tænkes lidt alternativt.
evt. med http://se2.php.net/manual/en/function.sleep.php
imellem hver 100 mails.
Avatar billede nephilim Nybegynder
30. november 2004 - 05:12 #6
burde det ikke være muligt at smide adresserne i BCC feltet og så sende en email til dig selv? selvf. bcc for ikke at sende hele email-listen til alle.
Avatar billede nephilim Nybegynder
30. november 2004 - 05:20 #7
hmm nm det har mail i php vist ikke
Avatar billede morteeart Nybegynder
30. november 2004 - 09:41 #8
jo, php har da en BCC til mail();

God ide nephilim, fixer lige et eksempel.
Avatar billede morteeart Nybegynder
30. november 2004 - 10:11 #9
<?
$headers .= "From: Nicocarlos <dinegen@email.dk>\r\n";

$hent_emails = @mysql_query("SELECT email FROM emails");
$i = 1;
while($mail = @mysql_fetch_arrray($hent_emails))
{
if($1 = 1) {
$to  = $mail['email'] . ", " ;
}
$to .= $mail['email'];
$i++;
}

mail($to, "emne" , "hejhej dette her kommertil at slå 1000 gange", $headers);

?>

Her bruger vi så mail() én gang.

Dette er IKKE testet, men burde virke.
(ifl. http://dk2.php.net/manual/en/function.mail.php )
Avatar billede morteeart Nybegynder
30. november 2004 - 10:22 #10
og
if($1 = 1) {
$to  = $mail['email'] . ", " ;
}
skal self være
if($1 == 1) {
$to  = $mail['email'] . ", " ;
}

// havde glemt et = i if() sætningen.
Avatar billede nicocarlos Nybegynder
30. november 2004 - 13:23 #11
men jeg tror jeg bliver nødt til at lave en while. Fordi hver bruger skal have forskellig info, hvordan får jeg viklet det ind i :)
Avatar billede nicocarlos Nybegynder
30. november 2004 - 13:27 #12
altså hente information fra hver bruger ud fra dennes mail :/
Avatar billede nephilim Nybegynder
01. december 2004 - 13:50 #13
ahh det jeg havde i tankerne var noget hen af en mailing liste. Du må nok så lave alle mails separat og så vente i mellem hver, eller bruge en smtp connection.
Avatar billede morteeart Nybegynder
03. december 2004 - 10:39 #14
okay, men så er der vel ikke så meget tilbage at gøre vel ?
Avatar billede nephilim Nybegynder
03. december 2004 - 12:56 #15
hvis du vil prøve med php og smtp kunne du prøve at kigge på denne her class, den er desværre på fransk, så jeg er ikke helt sikker på hvordan man bruger den.
http://tecfa.unige.ch/lib/php/smtp-mail/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester