Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php mail

Sivun loppuun

phPaavo [18.08.2011 10:35:36]

#

Mo!

Tämä kaatuu jos firmoja on esim 70 kpl. Mutta miksi?

#!/usr/bin/php
<?php
    ini_set('memory_limit' ,'128M');
    ini_set("max_execution_time", "0");
    set_time_limit(0);

    require("library/init.php");

            $subject = "Jotain";

            $viesti = "Hei,\n";
            $viesti .= $viestit[$data["viestityyppi"]][1];
            $viesti .= "\n\nYstävällisin terveisin:\n\n";

            $viesti .= $data["nimi"] . "\n";
            $viesti .= $data["osoite"] . "\n";
            $viesti .= $data["postinum"] . "\n";
            $viesti .= $data["toimipaikka"] . "\n";

            $viesti .= "Henkilötunnus: " . decrypt($data["htunnus"], $data["sarja"]) . "\n";
            $viesti .= $data["puh"] . "\n";

            $headers = 'From: ' . $data["sposti"] . "\r\n";
            $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";

        foreach($firmat as $firma)
        {
            if(!mail(trim($firma["sahkoposti"]), $subject, wordwrap($viesti, 70), $headers)) {
                throw new Exception ("En voinnut lahettaa viestia osoitteeseen: " . $firma["sahkoposti"] . " id:" . $data["id"]);
            }
            sleep("5");
        }
?>

Lebe80 [18.08.2011 11:07:23]

#

Määrittele "kaatuu".

Onko palvelimelta oikeasti estetty, ettei skriptejä voida ajaa noin kauaa (+5 min). Tähänhän ei silloin paljon php:n time_limitit auta

phPaavo [18.08.2011 11:14:29]

#

Prosessi kaatuu eli kuolee, se kaatuu ainoastaan "kuormituksen alla", eli kun pommitetaan viestejä. Se on jatkuvasti taustalla käynnissä.. while(1)..

Metabolix [18.08.2011 11:33:05]

#

Tarkoittaako kaatuminen ehkä sitä, että mail-funktio epäonnistuu ja tulee tuo koodiin kirjoitettu poikkeus? Jos palvelin ei ole omasi (tai vaikka olisikin), on aika todennäköistä, että sähköpostin massalähetystä on jotenkin rajoitettu.

phPaavo [18.08.2011 11:35:34]

#

Metabolix kirjoitti:

Tarkoittaako kaatuminen ehkä sitä, että mail-funktio epäonnistuu ja tulee tuo koodiin kirjoitettu poikkeus?

Ei, se ei "kaadu" poikkeukseen, vaan satunnaisesti lakkaa toimimasta ja ps -A | grep 'mailer.php' on tyhjä. Eli prosessi on kaatunut/sammunut/kuollut.

Jos on palvelu, jonka tarkoitus on lähettää keskitetysti postia. (Ei spammia). Miten muuten sitä voisi toteuttaa? Onko pear vakaampi?

Metabolix [18.08.2011 11:44:48]

#

Miten siis olet käynnistänyt tuon, ja onko ihan mahdoton ajatus debugata sitä kaatumista itse esim. lisäämällä skriptiin tulosteita ja katsomalla, mihin kohti loppuu?

phPaavo [18.08.2011 11:49:45]

#

./mailer.php >/dev/null &

Eli scripti tarkistaa ja poimii mahdolliset front-endin kautta syötetyt "mailaus-pyynnöt".

Ym. scripti mailaa "sarjan", menee takaisin nukkumaan hetkeksi 10 min.
Härettyään se tarkistaa onko tullut uusia mailaus pyyntöjä.

Se toimii Noin 30 firman kanssa. Heti kun nostin lukua 70, niin alkoi kaatuilu..

Voiko olla että sendmail suuttuu php:lle, ja sanoo että ei enää viestejä kiitos?

Metabolix kirjoitti:

.. onko ihan mahdoton ajatus debugata sitä kaatumista itse esim. lisäämällä skriptiin tulosteita ja katsomalla, mihin kohti loppuu?..

pitää kokeilla..

Metabolix [18.08.2011 11:55:40]

#

Jos laittaisit vain ./mailer.php ilman lisäjuttuja ja säätäisit PHP:n kaikki mahdolliset virheilmoitukset käyttöön ja näkyviin, skripti ehkä kertoisi, mikä meni pieleen.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta