Gå til innhold

forbedring av mailscript


Anbefalte innlegg

Man kan si det mildt at scriptet under er SVÆRT lite effektivt. Jeg trenger noen forslag for å forkorte prosesseringstiden (får nå ofte timeout pga for lang lastetid).

 

Hensikten med scriptet er at man skal kunne sende mail til alle e-post adresser i en database.

 

$tell = 0;

$mailliste = mysql_query("SELECT * FROM users WHERE active ='y' ORDER BY login"); while ($liste = mysql_fetch_array($mailliste)) {

$this->multimail($liste["email"], $overskrift, $this->br2nl($tekst));

$tell++;

}

$this->message = '<b>Mailen er sendt til '.$tell.' brukere (alle)!</b>';

 

 

 

 

multimail er et enkelt mail script:

 

function multimail($mail_address, $overskrift, $melding) {

$header = "From: \"".$this->webmaster_name."\" <".$this->webmaster_mail.">\r\n";

$header .= "MIME-Version: 1.0\r\n";

$header .= "Mailer: ksjon mail script version 1.00\r\n";

$header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";

$header .= "Content-Transfer-Encoding: 7bit\r\n";

$subject = $overskrift;

$body = $melding;

if (mail($mail_address, $subject, $body, $header)) {

return true;

} else {

return false;

}

}

 

 

takk for alle svar!

Lenke til kommentar
Videoannonse
Annonse
Vil tippe på at grunnen til timeout'ene er at mail() funksjonen bruker ein god del. Det er ikkje så mykje du kan få gjort med dette.

8559401[/snapback]

Hvorfor ikke?

 

E-post-protokollene har en feature som heter BCC (Blind Carbon Copy) innebygget, dette er det samme som CC (Copy to), men forskjellen er at mottakeren ikke ser de andre mottakerene. Og når man skal sende ut en e-post til mange personer så er det en smart løsning. Siden man da bare sender ut en e-post, så er det opp til mailserveren og behandle mailen skikkelig. :)

Endret av Ueland
Lenke til kommentar
Vil tippe på at grunnen til timeout'ene er at mail() funksjonen bruker ein god del. Det er ikkje så mykje du kan få gjort med dette.

8559401[/snapback]

Hvorfor ikke?

 

E-post-protokollene har en feature som heter BCC (Blind Carbon Copy) innebygget, dette er det samme som CC (Copy to), men forskjellen er at mottakeren ikke ser de andre mottakerene. Og når man skal sende ut en e-post til mange personer så er det en smart løsning. Siden man da bare sender ut en e-post, så er det opp til mailserveren og behandle mailen skikkelig. :)

8559431[/snapback]

 

Beklager du har så rett så rett :cool:

Lenke til kommentar

I begynnelsen brukte jeg faktisk BCC

 

Problemet med å bruke BCC er at det kan kun brukes et max gitt antal tegn.. 255 tegn/adresser(?).

 

Og da er jeg egentlig like langt...

Endret av ksjon
Lenke til kommentar

En vanlig begrensning i BCC er 100 adresser, dette er/var standard i f.eks. Exim. Som de fleste andre instillinger er det mulig å endre, men kanskje litt verre dersom du bare er på et webhotell.

 

Sjekk med webhotellet ditt.

 

Men egentlig så er det ikke webhotellet ditt sin jobb å sende ut masseutsendelse av mail - dette burde skje via en mailserver, og ikke mail() funksjonen. Da slipper du problemet med en ukjent mottaker i TO feltet, som det blir ved utsendelse til BCC.

 

Selv om BCC er meget kjekt, og jeg bruker det selv, så må jeg innrømme at det er rart å motta mail som er sendt til en annen adresse enn min.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...