27. december 2008 - 18:18Der er
8 kommentarer og 1 løsning
max antal modtagere i PHPs mail-funktion
Hejsa.
Er der et max på, hvor mange modtagere, man kan tilføje til Bcc i PHPs mail() funktion? - og hvordan løser man problemstillingen, hvis man gerne vil sende til flere?
Jeg ved ikke om der er en øvre grænse. Hvor mange skal du sende til? Jeg vil foreslå, at du anvender mail() i fx. en while-løkke for hver bcc-adresse. Hvis du så anvender MySQL kan du vælge at skrive til en tabel hver gang løkken løbes igennem - altså samtidig med at emailen sendes. På den måde kan du efterfølgende se, om det er lykkedes at sende til alle, og hvis ikke, kan du se, hvem det er lykkedes for eller modsat.
Jeg selv anvender PHPmailer, og når der skal sendes mange emails, er det min erfaring, at SMTP-opsætning er hurtigere.
mcardle --> hvor for bruge sleep()? Kan man ikke bare sende flere mails hurtigt efter hinanden. Mange webhoteller har jo også en timeout, hvor de dræber PHP-scripts, der har kørt i fx 30 sek...
Nogle webhoteller anvender ikke timeout hvis der sendes via smtp. Fx. så anvender one.com ingen timeout, men har til gengæld en limit på 500 stk. i timen (er ikke helt sikker på tallet).
nemlig --> Det er faktisk et One.com webhotel, der anvendes og jeg vil p.t. sende til ca. 180 modtagere, men mail()-funktionen returnerer FALSE, når der kommer ca. 75 modtagere på i Bcc... Dette stemmer dog ikke overens med One.coms limit på 500 stk. pr. ½-time (det har jeg fået oplyst)... Derfor kom jeg til at tænke på, om selve mail()-funktionen havde nogle limits...
Men jeg har nu lavet et loop, hvor jeg deler mailsne op, så der kun er 50 mail-adresser i hver Bcc, og det ser ud til at virke. Jeg bruger ikke sleep(), da jeg ikke kan se, hvad den gør godt for.
Men hvis der er nogen, der kan opklare, hvorfor mail() returnerer FALSE ved ca. 75 adresser i Bcc, så er der stadig points at hente...
Jeg melder pas. Må jeg lige spørge, hvordan du koder din loop? Er lidt nysgerrig, da jeg har lavet et emailsystem, men kun prøvet af sende omkring 40 stk. emails på én gang.
Har du i øvrigt overvejet at gemme i MySQL hver gang der sendes en email. Det giver en god mulighed for at tjekke, hvem der er sendt til.
Tja, man kunne jo godt gemme hver gang, men sender og man kunne også bare udskrive dem, som ikke bliver sendt. I det her tilfælde udskriver jeg bare "There has been a mail error sending to mails", så jeg ved, om der overhovedet kommer noget afsted. Der kom nemlig intet afsted ved mere end 75 modtagere.
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.