15. september 2003 - 00:12Der er
18 kommentarer og 2 løsninger
mail() med PHP
Jeg har lavet en mailing-liste, men jeg er lidt i tvivl om hvor mange e-mails mail()-funktionen kan håndtere og hvad jeg skal gøre for at mit script ikke går dødt midt i det hele ?
samme... den timer ud efter 30 mails... men det kan du godt forhindre hvis du ændre timeouten :) havde en php command engang man lige kunne skrive men kan ikke huske den... fik også afvide at det var smartere med sockets.
Den grundlæggende forskel er, at mail() åbner og lukker forbindelsen til smtp-serveren for hver eneste mail der skal sendes - dette koster meget tid og er unødvendigt! Ovenstående link fra ztyxx peger på en smtp-klasse, som basalt set kobler op til smtp-serveren, sender alle de mails der skal sendes og derefter lukker forbindelse - det er væsentligt hurtigere end at åbne og lukke forbindelsen gentagne gange!
Det tager dog stadig tid at sende 1000 mails og hvis det tager for lang tid, kan du søge i de spørgsmål jeg har deltaget i det sidste stykke tid - ét af dem omhandlede, hvordan man kunne sende et nyhedsbrev til mange abonnenter af flere omgange for at mindske belastningen af serveren!
Hvordan kan det være, er det ikke stadig en del af scriptet ?
Den klasse du vidste mig, er den ligesom de PEAR-klasser der findes ?
Hvor mange mails vil du skyde på kan man sende på 120 sekunder ? (Der er jo ingen grund til det helt store, hvis jeg kan sende de mails jeg har brug for med mail() :) )
jeg kan ikke umiddelbart give et bud på hvor mange mails php´s mail() kan håndtere på 120 sekunder, det kan jo afhænge af flere ting, serverens hastighed osv.
den klasse jeg postede, fungerer i princippet som de pear-klasser der findes
SMTP-klassen har ikke umiddelbart noget med PEAR klasserne at gøre udover at det ér en klasse, men det er jo blot fordi programmeringen er objektorienteret.
Dette betyder så også, at klassen ikke kræver andre komponenter for at fungere, som det ofte er tilfældet med PEAR-klasser (Ikke at det nødvendigvis er et problem).
Derudover er et meget godt argument for at benytte SMTP-klassen i stedet for mail() at det belaster både webserver samt smtp-server meget mindre, hvilket selvfølgelig kan være ligegyldigt, hvis det er din egen server. Jeg har dog set eksempler, hvor webhoteller lukker for muligheden for at bruge mail() pga. misbrug fra webhotellets kunder - selv en god server kan ikke kompensere for inefficient programkode.
Fordi begge tags kan benyttes til at indikere start på php-kode - <% %> er vistnok asp-stil! Du sletter bare <% %> hvis din php er konfigureret til at benytte <?php ?>!
jeg benyttede den på et tidspunkt, og med stor hjælp fra tipsen, ellers havde jeg nok ikke fået det til at virke, og der fjernede jeg <% %> før det ville kø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.