| 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);
}
|
||
|
|
Svara med citat
|
|
|
#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). |
||
|
|
Svara med citat
|
|
|
#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.
|
||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Klarade millennium-buggen
|
Mailservern är gjord för att klara riktigt mycket stryk. Den köar bara snällt upp alla mailen.
|
||
|
|
Svara med citat
|
|
|
#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. |
||
|
|
Svara med citat
|
|
|
#6 | ||
|
|||
|
Nykomling
|
Ok, jag testar mig blå.... Tack för svaren!
|
||
|
|
Svara med citat
|
|
|
#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'] . ", ";
}
|
||
|
|
Svara med citat
|
|
|
#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. |
||
|
|
Svara med citat
|
|
|
#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! |
||
|
|
Svara med citat
|
|
|
#10 | |||
|
||||
|
Medlem
|
||||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|