24. oktober 2005 - 18:15Der er
27 kommentarer og 1 løsning
Hjælp til at bruge mail() funktionen
Jeg vil med denne kode sende en nyhedsmail. Mit problem er at det kun er den første i MySQL-databasen der får en mail. Er det bare en lille fejl, eller kan jeg ikke sende så mange mails på denne måde? Der er ca. 50 mails i databasen, og der kommer flere til.
Kode: ---------------------------------------------- $hent_mails = mysql_query("SELECT mail from et_mails_billeder"); while ($mails = mysql_fetch_Array($hent_mails)) { extract($mails); mail("$mail","Nyhedsmail fra..."," tekst..... "); }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den nemme måde ville være blot at adskille alle modtagerne med et komma, og så smide dem ind i en BCC: header (de fleste vil nok ikke have deres e-mail adresse ud til andre ;)). Så behøver du kun en enkelt mail(), men alle får stadig mailen.
$hent_mails = mysql_query('SELECT mail from et_mails_billeder'); while ($mail = mysql_feetch_assoc($hent_mails)) $mails[]=$mail['mail']; mail('undisclosed-recipients:', 'Nyhedsmail fra blabla', 'min tekst her', 'From: your@email.org\r\n' . 'Reply-To: your@email.org\r\n' . 'X-Mailer: PHP/' . phpversion() . '\r\n' . 'Bcc: ' . implode(', ', $mails) . '\r\n');
Der skal selvfølgelig rettes lidt til hist og her (eksempelvis skal der helst en egentlig e-mail ind i From og Reply-To, og en del af tingene kunne godt blive flyttet ud i nogle variable), men i det store og hele burde det der fungere. Husk at lade \r\n blive hvor de er, da de adskiller headerne.
Prøv at smide en error_reporting(E_ALL); ind før det hele og se hvad den siger.
Vær i øvrigt opmærksom på at du kun selv kommer til at modtage den mail hvis du er i tabellen - du kan evt. erstatte undisclosed-recipients: med din e-mail adresse.
Jeg ved ikke lige hvad det skal sige, at lave en debug, men får nu: debug: mail('asger@crx-web.dk', 'Nyhedsmail fra blabla', 'min tekst her', 'From: your@email.org ' . 'Reply-To: your@email.org ' . 'X-Mailer: PHP/' . phpversion() . ' ' . 'Bcc: ' . implode(', ', ) . ' ')
Gah! Linie 2 af min kode - der skal selvfølgelig stå mysql_fetch_array, ikke mysql_feetch_array... omend jeg undrer mig lidt over der ikke kommer en parse error ud af det...
Det går da rigtig godt - der skal *helst* stå mysql_fetch_assoc, omend mysql_fetch_array også kan bruges. Eneste forskel er bare at assoc er lidt "billigere" at udføre.
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.