/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mail() vs. socket
Fra : Kaare Christensen


Dato : 24-07-01 01:24

Hi .php

Hvor hurtig er mail() funktionen i PHP når der for eksempel skal afsendes
100.000 emails fra en mailing list?
Umiddelbart tog det mit mailing program 24 timer at sende 145.000 emails ud
vha. mail() funktionen i PHP ... hvilket umiddlebart virker som lang tid ...
er det det?

Ville det være hurtige/bedre at åbne en socket til smtp serveren og skrive
dem direkte hertil?

--
Mvh.
Kåre Christensen
http://www.mermaidconsulting.com



 
 
Niels Andersen (24-07-2001)
Kommentar
Fra : Niels Andersen


Dato : 24-07-01 06:23

"Kaare Christensen" <kaare@mermaidconsulting.com> wrote in message
news:9jif82$2h41$1@news.cybercity.dk...
> Hvor hurtig er mail() funktionen i PHP når der for eksempel skal afsendes
> 100.000 emails fra en mailing list?
> Umiddelbart tog det mit mailing program 24 timer at sende 145.000 emails
ud
> vha. mail() funktionen i PHP ... hvilket umiddlebart virker som lang tid
....
> er det det?

Det kommer an på om der skulle bruges tid på at generere mailen, eller om de
bare får det samme spyttet i hovedet alle sammen.
Det kommer også an på hvor stor mailen er, og om mailserveren er på
"localhost".
Windows-maskiner connecter med smtp til en mailserver, jeg kan forestille
mig at unix-løsningen er noget hurtigere.

Men det korte af det lange er, at PHP nok ikke er det bedste til at sende så
mange mails med. :)

Jeg har været med til at sende mails ud i den størrelsesorden (dog ikke
PHP), og det kunne gøres på omkring 12 timer. Men det, der tog tid der var,
at generere dem, og ikke så meget det at sende dem. Så det burde altså at
kunne gøres hurtigere. :)

--
Mvh.

Niels Andersen



Jacob Bunk Nielsen (24-07-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 24-07-01 08:25

"Kaare Christensen" <kaare@mermaidconsulting.com> writes:

> Hvor hurtig er mail() funktionen i PHP når der for eksempel skal afsendes
> 100.000 emails fra en mailing list?

Jeg *tror* at den er hurtig nok til at det er SMTP-trafikken, som er
flaskehalsen, under forudsætning af at det ikke er fordi serveren
bruger enormt meget tid på at generere de mails den skal sende.

> Umiddelbart tog det mit mailing program 24 timer at sende 145.000 emails ud
> vha. mail() funktionen i PHP ... hvilket umiddlebart virker som lang tid ...
> er det det?

Det er ca. 100 mails i minuttet. Hvis det ikke er foregået fra en
superhurtig linie, eller de mails du har sendt har været mere end bare
et par kilobytes hver, så synes jeg faktisk det er ganske pænt.

> Ville det være hurtige/bedre at åbne en socket til smtp serveren og skrive
> dem direkte hertil?

Det *tror* jeg ikke. Så er det nok snarere hurtigere at fordele det ud
på et par SMTP-servere. Hvis du ikke har prøvet at sende det fra en
*nix-maskine med en lokal SMTP-server var det bestemt også en mulighed
du burde prøve.

--
Jacob
Give me a minute, and I'll come up with a better excuse ...

http://www.bunk.cc - nu med Emacs effekt

Jonas Koch Bentzen (24-07-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 24-07-01 09:20

Kaare Christensen skrev:

> Umiddelbart tog det mit mailing program 24 timer at sende 145.000
> emails ud vha. mail() funktionen i PHP ... hvilket umiddlebart virker
> som lang tid ... er det det?

Hvorfor ikke prøve med bcc, hvis altså alle brevene er ens? Send hvert
brev til 50 modtagere (opskrevet i bcc), så går det sikkert hurtigere.

--
Venlig hilsen
Jonas Koch Bentzen

Anders Johannsen (24-07-2001)
Kommentar
Fra : Anders Johannsen


Dato : 24-07-01 10:13

> Hvor hurtig er mail() funktionen i PHP når der for eksempel skal afsendes
> 100.000 emails fra en mailing list?

Under UNIX kalder PHP 'sendmail' for hvert kald til mail(), hvilket
selvfølgelig ikke er optimalt når man skal spamme så mange mennesker.

> Umiddelbart tog det mit mailing program 24 timer at sende 145.000 emails ud
> vha. mail() funktionen i PHP ... hvilket umiddlebart virker som lang tid ...
> er det det?

Det er jo omtrent et døgn, hvilket er længere end jeg ville bryde mig om at
have en PHP process til at køre under nogen omstændigheder. Afhængigt af dit
setup vil processen dø hvis webserveren startes, hvilket i mine øjne er en stor
risiko at løbe.

Den optimale løsning ville være at have et ekstern program (skrevet i et mere
solidt programmeringssprog) stå for udsendelsen. Det er i denne sammenhæng værd
at bemærke, at der er store hastighedsmæssige forbedringer i f.eks. at lade din
favorit SMTP server styre mail køen.

/A

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagoiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Niels Andersen (24-07-2001)
Kommentar
Fra : Niels Andersen


Dato : 24-07-01 21:09

"Anders Johannsen" <not@valid.dk> wrote in message
news:9jje6c$o9g$1@sunsite.dk...
> > 100.000 emails fra en mailing list?
> selvfølgelig ikke er optimalt når man skal spamme så mange mennesker.

Det er nu altså ikke alle der sender mails ud i den størrelsesorden, der
spammer!

Jeg synes det er en meget grov anklage. Jeg håber du bare glemte en smiley.

--
Mvh.

Niels Andersen



Jonas Delfs (24-07-2001)
Kommentar
Fra : Jonas Delfs


Dato : 24-07-01 21:41

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:EBk77.6198$Qn.502378@news000.worldonline.dk...

> > > 100.000 emails fra en mailing list?
> > selvfølgelig ikke er optimalt når man skal spamme så mange mennesker.
>
> Det er nu altså ikke alle der sender mails ud i den størrelsesorden, der
> spammer!

Jeg _tror_ ikke at Anders rent faktisk mener at Kaare er ved at spamme, men
bare bruger det som udtryk for de _mange_ mails.
Hvis jeg tager fejl, er jeg enig i at det er en grov anklage.

--
Mvh./Best Regards
Jonas Delfs, http://delfs.dk
e72bd3e51a7937c87d28b85d677a97b2



Anders Johannsen (25-07-2001)
Kommentar
Fra : Anders Johannsen


Dato : 25-07-01 00:51

Jonas Delfs wrote in dk.edb.internet.webdesign.serverside.php:

> > > > 100.000 emails fra en mailing list?
> > > selvfølgelig ikke er optimalt når man skal spamme så mange mennesker.
> >
> > Det er nu altså ikke alle der sender mails ud i den størrelsesorden, der
> > spammer!
>
> Jeg _tror_ ikke at Anders rent faktisk mener at Kaare er ved at spamme,
men
> bare bruger det som udtryk for de _mange_ mails.

Jeg må nok indrømme, at jeg ikke har gjort mig de store overvejelser om
hvorvidt Kaare skulle være en nederdrægtig spammer, som sidder i bordlampens
skær og gnider sig i hænderne når han fylder uskyldige menneskers mailbox,
eller han har et legalt formål. Jeg går naturligvis ud fra det sidste.

Ordet 'spam' er en provokation affødt af mailenes antal, 145.000, som
fremkommer uden forklaring eller sammenhæng, samt at maileren er skrevet i
ren php. Disse omstændigheder står i intet rimeligt forhold til hinanden;
projektet forekommer useriøst, og dette kræver en kommentar. Således var
altså bevæggrunden.

/A



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagoiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kaare Christensen (25-07-2001)
Kommentar
Fra : Kaare Christensen


Dato : 25-07-01 11:07

hehe .... jeg blive vidst lige nødt til at kaste en kommentar eller to her
... :)

> Jeg må nok indrømme, at jeg ikke har gjort mig de store overvejelser om
> hvorvidt Kaare skulle være en nederdrægtig spammer, som sidder i
bordlampens
> skær og gnider sig i hænderne når han fylder uskyldige menneskers mailbox,
> eller han har et legalt formål. Jeg går naturligvis ud fra det sidste.

Først og fremmest ... det er ikke mig der sender 'spam' ud. Jeg er blot
udvikler for et canadisk firma som har en mailing liste på ca. 140.000
personer, som alle selv har tilmeldt sig dertil. Og når jeg umiddelbart
tænker spam plejer det ikke være så nemt at afmelde sig det ... alle
personene på denne liste kan afmelde sig ved to klik.
At der så stadig er folk der synes at det er spam er egentlig ikke mit
problem, da jeg bare laver noget af programmet.

> Ordet 'spam' er en provokation affødt af mailenes antal, 145.000, som
> fremkommer uden forklaring eller sammenhæng, samt at maileren er skrevet i
> ren php. Disse omstændigheder står i intet rimeligt forhold til hinanden;
> projektet forekommer useriøst, og dette kræver en kommentar. Således var
> altså bevæggrunden.

Umiddelbart har jeg svært ved at se det useriøse i 145.000 emails ... ved
selvfølgelig ikke med dig? Og at det virker mærkeligt at udvikle det i ren
PHP ... hvorfor det? Indtil nu har jeg kun haft gode erfaringer med PHP. Før
i tiden blev den site jeg arbejder på kørt i ren perl/CGI/MySQL og den havde
ofte problemer med at klare de ca. 3-400.000 hits om dagen. Vi konverterede
til PHP hvilket har kørt lige siden.
Om det så ville være 'forkert' at lave en mailing liste i ren PHP er vel en
smagssag. Umiddelbart ville jeg ligeså gerne lave den i C eller lign., men
så skal kunden jo også betale for det, hvilket han ikke vil. Deraf valget på
PHP.

Egentlig var grunden til denne post bare at få lidt respons mht. folks
erfaringer med PHP mail() mod en socket løsning, hvor man skriver direkte
til mail-serveren.

Mvh.
Kaare Christensen



Jonas Koch Bentzen (25-07-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 25-07-01 14:06

Kaare Christensen skrev:

> Umiddelbart ville jeg ligeså gerne lave den i
> C eller lign., men så skal kunden jo også betale for det, hvilket han
> ikke vil. Deraf valget på PHP.

Du kan bruge programmet C-programmet "mail" (findes på stort set alle
Unix-systemer) til at sende vha. BCC. Mig og en kammerat sad på et
tidspunkt og regnede ud, at der kan være... jeg mener, det var omkring
4500 tegn på kommandolinjen - hvilket vil sige, at der er plads til et
stort antal emailadresser. Det skulle være en ret hurtig måde at sende
på.

mail -s "Her er emnet" -b "adresse1@eksempel.dk,
adresse2@eksempel.dk" til-adresse@eksempel.dk

Kør "man mail" for at få flere detaljer. I øvrigt kan jeg ikke lige
huske, om der skal komma eller ikke skal komme mellem adresserne i
bcc-listen (den, der starter med "-b").

--
Venlig hilsen
Jonas Koch Bentzen

Jonas Koch Bentzen (25-07-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 25-07-01 14:07

Jonas Koch Bentzen skrev:

> Kaare Christensen skrev:
>
>> Umiddelbart ville jeg ligeså gerne lave den i
>> C eller lign., men så skal kunden jo også betale for det, hvilket han
>> ikke vil. Deraf valget på PHP.
>
> Du kan bruge programmet C-programmet "mail"

For at uddybe: Mit forslag er, at du kalder "mail" fra PHP med exec(),
system() eller lignende.

--
Venlig hilsen
Jonas Koch Bentzen

Kaare Christensen (25-07-2001)
Kommentar
Fra : Kaare Christensen


Dato : 25-07-01 14:41

>
> For at uddybe: Mit forslag er, at du kalder "mail" fra PHP med exec(),
> system() eller lignende.
>

Tak for forslaget Jonas. Det vil jeg lige få prøvet.

Ang. det med betaling fra kunden mente jeg at han skulle betale for de
ekstra prog. timer, fremfor at tage et færdigt og gratis mailing liste
program og så lade mig ændre i det - så det kunne håndtere de mange mails på
en gang.
Undskyld hvis jeg ikke udtrykkede mig klart der!

Mvh.
Kåre Christensen



Søg
Reklame
Statistik
Spørgsmål : 177506
Tips : 31968
Nyheder : 719565
Indlæg : 6408562
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste