/ 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
Mere effektiv mail udsending
Fra : Thomas Pedersen


Dato : 01-12-01 18:36

Hejsa

Denne post er sat i 2 grupper. Lad venligst være med at multi poste, hvis de
ønsker at reply på denne.

Jeg skal lave et mail list system i php som skal sende en del Mails ud, når
det ønskes (300 +). Jeg tænkte derfor at lave noget som ikke benyttede sig
af mail() funktionen som ligger i php, da denne er lidt langsom mm + at det
ikke vil være hensigtmæssigt at lave xxx antal loops mm. Det vil spise ALT
for mange server resurcer. Tænkte derfor på om man ikke kunne lave noget som
kørte direkte sammen med serverens (Linux) mail system. Det skal lige siges
at jeg ikke inde i hvordan dette teknisk fungere, derfor denne mail.

Men kort.
Er det muligt at skrive direkte til mail systemet på en Linux server, via
noget PHP.

Mvh
Thomas Pedersen



 
 
Morten Poulsen (01-12-2001)
Kommentar
Fra : Morten Poulsen


Dato : 01-12-01 19:27

In article <9ub42f$lir$1@eising.k-net.dk>, "Thomas Pedersen"
<tp@dvd-centrum.dk> wrote:
> Jeg skal lave et mail list system i php som skal sende en del Mails ud,
> når det ønskes (300 +). Jeg tænkte derfor at lave noget som ikke
> benyttede sig af mail() funktionen som ligger i php, da denne er lidt
> langsom mm + at det ikke vil være hensigtmæssigt at lave xxx antal loops
> mm. Det vil spise ALT for mange server resurcer. Tænkte derfor på om man
> ikke kunne lave noget som kørte direkte sammen med serverens (Linux)
> mail system. Det skal lige siges at jeg ikke inde i hvordan dette
> teknisk fungere, derfor denne mail.

Hvad med at saette en egentlig mailingliste op? Jeg kan anbefale mailman
eller - hvis det skal vaere nemt at tilfoeje folk til listen via PHP -
majordomo. Saa sender du bare een mail fra PHP til listen (husk at lave
den moderated hvis ikke folk skal kunne sende til den ellers).

mvh
Morten

Thomas Pedersen (02-12-2001)
Kommentar
Fra : Thomas Pedersen


Dato : 02-12-01 15:27

Det hele ligger i at der ikke findes en egentlig mail liste. Den bliver
lavet dynamisk hver gang.
Brugerne som der skal sendes til er inddelt i nogle niveauer lodret. Hver
niveau skal kunne sende vandret på niveuets brugere. (Meget simpelt sagt)
Ret komplexed når det skal til at køre.

Thomas

> Hvad med at saette en egentlig mailingliste op? Jeg kan anbefale mailman
> eller - hvis det skal vaere nemt at tilfoeje folk til listen via PHP -
> majordomo. Saa sender du bare een mail fra PHP til listen (husk at lave
> den moderated hvis ikke folk skal kunne sende til den ellers).
>
> mvh
> Morten



Michael Rasmussen (02-12-2001)
Kommentar
Fra : Michael Rasmussen


Dato : 02-12-01 16:29

On Sat, 01 Dec 2001 18:36:27 +0100, Thomas Pedersen wrote:

> Hejsa
>
> Denne post er sat i 2 grupper. Lad venligst være med at multi poste,
> hvis de ønsker at reply på denne.
>
> Jeg skal lave et mail list system i php som skal sende en del Mails ud,
> når det ønskes (300 +). Jeg tænkte derfor at lave noget som ikke
> benyttede sig af mail() funktionen som ligger i php, da denne er lidt
> langsom mm + at det ikke vil være hensigtmæssigt at lave xxx antal loops
> mm. Det vil spise ALT for mange server resurcer. Tænkte derfor på om man
> ikke kunne lave noget som kørte direkte sammen med serverens (Linux)
> mail system. Det skal lige siges at jeg ikke inde i hvordan dette
> teknisk fungere, derfor denne mail.
>
> Men kort.
> Er det muligt at skrive direkte til mail systemet på en Linux server,
> via noget PHP.
>
> Mvh
> Thomas Pedersen
>
>
Hvad med sockets? Se fsockopen.
--
Hilsen/Sincerely
Michael Rasmussen
-------------------------------------------------------------------
Fjern NOSPAM fra min adresse, for at sende mig en mail

Jonas Koch Bentzen (02-12-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 02-12-01 18:58

Michael Rasmussen skrev:
>
> On Sat, 01 Dec 2001 18:36:27 +0100, Thomas Pedersen wrote:
>
>> Denne post er sat i 2 grupper. Lad venligst være med at multi poste,
>> hvis de ønsker at reply på denne.
>>
>> Jeg skal lave et mail list system i php som skal sende en del Mails
>> ud, når det ønskes (300 +). Jeg tænkte derfor at lave noget som ikke
>> benyttede sig af mail() funktionen som ligger i php, da denne er lidt
>> langsom mm + at det ikke vil være hensigtmæssigt at lave xxx antal
>> loops mm. Det vil spise ALT for mange server resurcer.
>
> Hvad med sockets?

Du ville altså åbne en forbindelse og så affyre SMTP-kommandoerne
manuelt? Det kan da kun gøre det hele langsommere. Den eneste fordel,
jeg umiddelbart kan se i det, er, at man på den måde kan bruge en
SMTP-server, der befinder sig på en anden maskine.

--
Jonas Koch Bentzen

http://understroem.dk/

Anton Stonor (03-12-2001)
Kommentar
Fra : Anton Stonor


Dato : 03-12-01 13:54

On Sun, 02 Dec 2001 18:58:26 +0100, Jonas Koch Bentzen
<ingen.emailadresse@eksempel.dk> wrote:

>> Hvad med sockets?
>
>Du ville altså åbne en forbindelse og så affyre SMTP-kommandoerne
>manuelt? Det kan da kun gøre det hele langsommere. Den eneste fordel,
>jeg umiddelbart kan se i det, er, at man på den måde kan bruge en
>SMTP-server, der befinder sig på en anden maskine.

I princippet kan det vel godt gøre processen hurtigere. I hvert fald
kan man jo så nøjes med at åbne en forbindelse til SMTP-udsenderen 1
gang i stedet for hele tiden at åbne og lukke med mail().

Det åbner også mulighed for at optimere på mail-modtager-side. Hvis du
har flere mails til samme mail-server, kan du gruppere dem og nøjes
med at connecte 1 gang til fx hotmail.com og aflevere 50 mails i
stedet for 1 gang pr. mail.

Med et par hundrede mails er det måske overkill.

Når du får flere mail-modtagere ville jeg nok på et tidspunkt overveje
at gå væk fra PHP til at udsende med. Sproget er vist ikke så velegnet
og ikke beregnet til at stå og tygge på længerevarende opgaver.

(Udsender i øvrigt selv et par nyhedsbrev, hvor brugeradministration
håndteres i PHP, mens selve udsendelsen og bouncing håndteres i C++)



--
Anton Stonor

http://jul.giraffen.dk

Kim Emax - ayianapa.~ (03-12-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 03-12-01 21:25


"Anton Stonor" <stonor@yahoo.com> skrev

> Det åbner også mulighed for at optimere på mail-modtager-side. Hvis du
> har flere mails til samme mail-server, kan du gruppere dem og nøjes
> med at connecte 1 gang til fx hotmail.com og aflevere 50 mails i
> stedet for 1 gang pr. mail.

sjov tanke, men åbner du ikke bare en connect til din webhotel udbyders
SMTP? Jeg kan da ikke forstille mig at mail() forspørger f.eks. hotmails
servere om brugeren eksisterer

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Anton Stonor (03-12-2001)
Kommentar
Fra : Anton Stonor


Dato : 03-12-01 23:08

On Mon, 3 Dec 2001 21:24:41 +0100, "Kim Emax - ayianapa.dk"
<newsgroup@sletdette-ayianapa.dk> wrote:

>> Det åbner også mulighed for at optimere på mail-modtager-side. Hvis du
>> har flere mails til samme mail-server, kan du gruppere dem og nøjes
>> med at connecte 1 gang til fx hotmail.com og aflevere 50 mails i
>> stedet for 1 gang pr. mail.
>
>sjov tanke, men åbner du ikke bare en connect til din webhotel udbyders

Det er ikke blot en tanke - mindst 1 gennemprøvet script bruger den
teknik.

>SMTP? Jeg kan da ikke forstille mig at mail() forspørger f.eks. hotmails
>servere om brugeren eksisterer

Nej, det gør mail() ikke. Den åbner en forbindelse til webhotellets
MTA, sender mailen og lukker igen. Mail() er derfor ikke optimeret til
mass-mailing, fordi den åbner og lukker forbindelsen ved hver mail.

(I øvrigt er det spild af tid at forsøge at spørge, om en bruger
eksisterer, eftersom mange slår VRFY fra).

Pointen var bare, at man ved selv at skrive SMTP eller benytte mere
effektive funktioner kan opnå performance-forbedring ved mass-mailing
i forhold til at anvende mail().

--
Anton Stonor
http://jul.giraffen.dk

Mickey (03-12-2001)
Kommentar
Fra : Mickey


Dato : 03-12-01 23:21

"Anton Stonor" <stonor@yahoo.com> skrev i en meddelelse
news:3c0bf5cc.51887640@news.worldonline.dk...

> (I øvrigt er det spild af tid at forsøge at spørge, om en bruger
> eksisterer, eftersom mange slår VRFY fra).

mange SMTP servere har det slet ikke med som default...

> Pointen var bare, at man ved selv at skrive SMTP eller benytte mere
> effektive funktioner kan opnå performance-forbedring ved mass-mailing
> i forhold til at anvende mail().

man kan vel aflevere alle mails i et kald til en SMTP, skrive en mail, rset,
skrive en mere, rset osv...


--
|-|$235-|)k - Mickey - Eko sum lapis
Problemer med forbindelsen ?
- lav en traceroute på http://trace.susie.dk


Kim Emax - ayianapa.~ (04-12-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 04-12-01 02:16


"Anton Stonor" <stonor@yahoo.com> skrev

> Pointen var bare, at man ved selv at skrive SMTP eller benytte mere
> effektive funktioner kan opnå performance-forbedring ved mass-mailing
> i forhold til at anvende mail().

såmænd også det jeg heletiden har sagt

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Christian Schmidt (03-12-2001)
Kommentar
Fra : Christian Schmidt


Dato : 03-12-01 23:16

"Kim Emax - ayianapa.dk" wrote:
>
> "Anton Stonor" <stonor@yahoo.com> skrev
>
> > Det åbner også mulighed for at optimere på mail-modtager-side. Hvis du
> > har flere mails til samme mail-server, kan du gruppere dem og nøjes
> > med at connecte 1 gang til fx hotmail.com og aflevere 50 mails i
> > stedet for 1 gang pr. mail.
>
> sjov tanke, men åbner du ikke bare en connect til din webhotel udbyders
> SMTP? Jeg kan da ikke forstille mig at mail() forspørger f.eks. hotmails
> servere om brugeren eksisterer

Det gør den faktisk som regel (lidt afhængigt af serverens
konfiguration).

Et kald til mail() vil normalt starte en mail-proces (dvs. et program på
serveren), der først vil terminere, når mailen er afleveret videre til
næste SMTP-server i rækken (dette kan enten være et lokalt SMTP-relay
eller modtagerens SMTP-server). Hvis denne er nede, vil processen hænge,
indtil den kommer op igen.

Hvis man derimod angiver "-O DeliveryMode=d" som femte parameter i PHPs
mail(), da vil mails blive lagt i den udgående mailkø i stedet, hvorfra
de vil blive afleveret i ro og mag. Og så vil man kunne nøjes med at
kontakte Hotmails SMTP-server én gang, selvom man sender mange mails til
den.

Ovenstående er min erfaring fra de systemer, jeg har arbejdet med. Under
andre systemkonfigurationer vil ovenstående sikkert forholde sig
anderledes.


Christian

Anton Stonor (04-12-2001)
Kommentar
Fra : Anton Stonor


Dato : 04-12-01 07:59


>Hvis man derimod angiver "-O DeliveryMode=d" som femte parameter i PHPs
>mail(), da vil mails blive lagt i den udgående mailkø i stedet, hvorfra
>de vil blive afleveret i ro og mag. Og så vil man kunne nøjes med at
>kontakte Hotmails SMTP-server én gang, selvom man sender mange mails til
>den.

Jeg var ikke opmærksom på dette parameter, som ser ud til at være helt
oplagt at bruge i dette tilfælde.

Anton Stonor

Thomas Jensen - pil.~ (04-12-2001)
Kommentar
Fra : Thomas Jensen - pil.~


Dato : 04-12-01 08:55

On Tue, 04 Dec 2001 06:59:25 GMT, stonor@yahoo.com (Anton Stonor)
wrote:

>
>>Hvis man derimod angiver "-O DeliveryMode=d" som femte parameter i PHPs
>>mail(), da vil mails blive lagt i den udgående mailkø i stedet, hvorfra
>>de vil blive afleveret i ro og mag. Og så vil man kunne nøjes med at
>>kontakte Hotmails SMTP-server én gang, selvom man sender mange mails til
>>den.
>
>Jeg var ikke opmærksom på dette parameter, som ser ud til at være helt
>oplagt at bruge i dette tilfælde.

imho er det oplagte helt at droppe php til mass-mailing

--
med venlig hilsen
Thomas Jensen
http://pil.dk/nyhedsbreve/2001oktober.php

Anders Johannsen (03-12-2001)
Kommentar
Fra : Anders Johannsen


Dato : 03-12-01 11:29

> Er det muligt at skrive direkte til mail systemet på en Linux server, via
> noget PHP.

Hvad tror du mail() gør?

/A




Kim Emax - ayianapa.~ (03-12-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 03-12-01 12:33


"Anders Johannsen" <anders@ignition.dk> skrev

> Hvad tror du mail() gør?

tænk lidt over max_execution_time (300+ mails

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Anders Johannsen (03-12-2001)
Kommentar
Fra : Anders Johannsen


Dato : 03-12-01 12:55

"Kim Emax - ayianapa.dk" <newsgroup@sletdette-ayianapa.dk> wrote in message
news:MpJO7.361$9p.55062@news010.worldonline.dk...

> > Hvad tror du mail() gør?
>
> tænk lidt over max_execution_time (300+ mails

Det ændrer vel ikke på hvad mail() gør?

Man vil nok finde, at set_time_limit() og register_shutdown_function() måske
kunne være praktiske at kende i denne sammenhæng.

/A



Kim Emax - ayianapa.~ (03-12-2001)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 03-12-01 20:53


"Anders Johannsen" <anders@ignition.dk> skrev '

> Det ændrer vel ikke på hvad mail() gør?
>
> Man vil nok finde, at set_time_limit() og register_shutdown_function()
måske
> kunne være praktiske at kende i denne sammenhæng.

hvordan vil du så gøre dette? sætte max_execution_time op til 3 minutter,
mens man sender en mail og ned bagefter? Det er da noget rod... mail() er
fint til _små_ mails, men til store maillister, der duer det bare ikke...
der findes andre løsninger, der er langt bedre...

Som jeg læser shutdown, så kører denne funktion, _når_ siden er parset. Det
ændre stadig ikke ved måden dette gøres på... Jeg vil prøve at lege med at
smide alle modtagere på min liste i BCC og se om det ændrer noget(ved at
mail() kun kaldes een gang)

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
http://www.artificial-dreams.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks mest avancerede VinWebShop



Anders Johannsen (04-12-2001)
Kommentar
Fra : Anders Johannsen


Dato : 04-12-01 16:44

> hvordan vil du så gøre dette? sætte max_execution_time op til 3 minutter,
> mens man sender en mail og ned bagefter? Det er da noget rod... mail() er
> fint til _små_ mails, men til store maillister, der duer det bare ikke...
> der findes andre løsninger, der er langt bedre...

Ja, men det har jo ikke noget med php at gøre.

> Som jeg læser shutdown, så kører denne funktion, _når_ siden er parset.
Det
> ændre stadig ikke ved måden dette gøres på... Jeg vil prøve at lege med at
> smide alle modtagere på min liste i BCC og se om det ændrer noget(ved at
> mail() kun kaldes een gang)

Den funktion kører efter klienten er detached

/A



Thomas Pedersen (04-12-2001)
Kommentar
Fra : Thomas Pedersen


Dato : 04-12-01 16:28

Hej alle sammen

Jeg vil tygge lidt på de forskellige forslag og prøve mig lidt frem. Jeg kan
ikke overskue hvor mange mails vi max snakker om, men det er mange. Gæt vil
være 500-800. Måske flere.

Men som sagt takker for de mange forslag. Det med ("-O DeliveryMode=d" som
femte parameter i PHPs mail ) Lyder meget spændende. Men noget med SMTP
kunne også være fremtiden, da jeg herved vil kunne lave en modul som jeg kan
benytte gang på gang.

Mvh
Thomas Pedersen



Thomas Jensen - pil.~ (04-12-2001)
Kommentar
Fra : Thomas Jensen - pil.~


Dato : 04-12-01 16:43

On Tue, 4 Dec 2001 16:28:21 +0100, "Thomas Pedersen"
<tp@dvd-centrum.dk> wrote:

>Hej alle sammen
>
>Jeg vil tygge lidt på de forskellige forslag og prøve mig lidt frem. Jeg kan
>ikke overskue hvor mange mails vi max snakker om, men det er mange. Gæt vil
>være 500-800. Måske flere.
>
>Men som sagt takker for de mange forslag. Det med ("-O DeliveryMode=d" som
>femte parameter i PHPs mail ) Lyder meget spændende. Men noget med SMTP
>kunne også være fremtiden, da jeg herved vil kunne lave en modul som jeg kan
>benytte gang på gang.

#!/usr/bin/perl -w
use strict;
use DBI;
use Net::SMTP;
use POSIX;
use CGI;

--
vh
Thomas Jensen
http://pil.dk/nyhedsbreve/2001oktober.php

Anders Johannsen (05-12-2001)
Kommentar
Fra : Anders Johannsen


Dato : 05-12-01 10:13

"Thomas Jensen - pil.dk" <tj@dev.null> wrote in message
news:llrp0ugrrj91dc92co0cijnlflf6mvb8ds@4ax.com...

> #!/usr/bin/perl -w
> use strict;
> use DBI;
> use Net::SMTP;
> use POSIX;
> use CGI;

Du skal passe på med at rode dig ud i det der kode

/A



Thomas Jensen - pil.~ (05-12-2001)
Kommentar
Fra : Thomas Jensen - pil.~


Dato : 05-12-01 10:56

On Wed, 5 Dec 2001 10:12:31 +0100, "Anders Johannsen"
<anders@ignition.dk> wrote:

>"Thomas Jensen - pil.dk" <tj@dev.null> wrote in message
>news:llrp0ugrrj91dc92co0cijnlflf6mvb8ds@4ax.com...
>
>> #!/usr/bin/perl -w
>> use strict;
>> use DBI;
>> use Net::SMTP;
>> use POSIX;
>> use CGI;
>
>Du skal passe på med at rode dig ud i det der kode

copy/paste kan man vel altid

--
vh
Thomas Jensen
http://pil.dk/nyhedsbreve/2001oktober.php

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

Månedens bedste
Årets bedste
Sidste års bedste