FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
Hur gör man för att skicka nyhetsmail till alla sina 1000 kunder?
Det lär väl knappast gå genom att göra så här: Kod:
$mailsubject = "Nyhetsbrev"; $mailbody = "Hej, kom och köp"; $mailadresser[] = (en väldig massa mailadresser); foreach ($mailadresser AS $dummy => $mailadress) { mail($mailadress,$mailsubject,$mailbody); } |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Det går.. beroende på din timeout i php.
Du kan som alternativ lägga till en LIMIT i din SQL och skicka med ett offset till sidan som skickar email. Då kan du köra iväg 30 stycken email och sedan uppdatera sidan med nytt offset. På det sättet kan du även starta om från valfri punkt (glöm inte markera vilka emails du har skickat till i databasen bara). |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Å tusan... Men hur mycket tål mailservern innan den brakar ihop? Om det nu skulle vara så att man har ett par hundra kunder som skall få mail, så blir väl den väldigt belastad av detta.
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Klarade millennium-buggen
|
Mailservern är gjord för att klara riktigt mycket stryk. Den köar bara snällt upp alla mailen.
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Banned
|
grazzy vet... Han är WNs största spammare
![]() Skämt åsido, det är precis som grazzy skriver... Bara ös på med mail till servern. Tänk dock på att kontrollera med hotellet att det är OK att skicka ut nyhetsbrev, så dom inte stänger av dig. |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Nykomling
|
Ok, jag testar mig blå.... Tack för svaren!
|
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Nykomling
|
Hej superhaga,
enligt PHP.net så tar mail-funktionens första parameter en sträng som bland annat kan se ut så här: "[email protected], [email protected]" eller så här: User <[email protected]>, Another User <[email protected]>. Jag skulle därför ha skrivit din kod så här förmodligen: Kod:
$email = ""; foreach ($mailadresser as $mailadress) { $email .= $mailadress . ", "; } $to = $email; if (@mail($to, $subject, $message, $headers)) { $strSuccess = 'Ditt mail har nu skickats!'; } else { $strError = 'Kunde inte skicka mailet'; } Kod:
$sql = "SELECT DISTINCT mail FROM anvandare"; $result = mysql_query($sql) or die(mysql_error()); $email = ""; while($row = mysql_fetch_assoc($result)) { $email .= $row['mail'] . ", "; } ![]() |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
Nej, det är ingen bra ide. Då kommer alla users att se alla andra users. Superhaga vill garanterat inte distribuera sin kunddatabas (eller sin kunds).
Det man skall använda i så fall är BCC (blind carbon copy - googla det) men många många mailmottagare triggar spamfilter på att ett mail kommer via BCC. Det är således inte alls att rekommendera. |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Nykomling
|
Ok grazzy, det tänkte jag faktiskt inte på men du har ju förstås rätt. Med tanke på vilken valuta e-postadresser har blivit så ska du inte följa mitt exempel superhaga.
Ett mail()-anrop för varje enskild e-postadress är väl den optimalaste lösning ändå antar jag. Ta även en titt på klassen http://phpmailer.sourceforge.net/. Förenklar mailutskick betydligt i min mening och är lätt att lära sig! |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Medlem
|
||||
![]() |
![]() |
Svara |
|
|