Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Viestin lähetys ongelmat

pistemies [04.03.2005 18:41:17]

#

Minulla on tällainen koodi, joka lähettää valitun html-sivun sähköpostiviestinä:

<?php
       $mail_mime  = "Date: ".date("l j F Y, G:i")."\n";
	$mail_mime .= "MIME-Version: 1.0\n";
	$mail_mime .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
	$mail_mime .= "Content-Transfer-Encoding: 7bit\n\n";
        $aihe="Otsikko tekstit";
        $from = "Pm-netti.com<pekka.mansikka@pm-netti.com>";

      $lista="send2.txt";  // Sähköpostilista-tiedosto
         $html=file("testisivu.html");  // html-sivu, joka lähetetään
           $fm=file($lista);

        for($i=0;$i<count($fm);)
        {
         $dem=explode("|",$fm[$i]);
         $saaja=$dem[1];

            for($i=0;$i<count($html);$i++)
           {
   	   $taulu=$html[$i];

	   $this_html .= $taulu;

     	   $texte_html .= "\n\n\n";
     	     }

     	mail($saaja,$aihe,$this_html,$mail_mime) or die ("MEIKÄLÄISELLE TUNTEMATON VIRHE!");
     	$i++;

       }
?>

Ongelmat ovat seuraavat:
1. Lähettää viestin vain sille, joka on send2.txt tiedostossa eka-rivillä. Tiedostossa on neljä riviä.
2. Miten tuossa saa tuon lähettäjän (form) näkymään viestin lähettäjänä? Jos tuon $mail_mime ottaa tuosta mail-lähetysriviltä pois, se ei tulosta html-muodossa

tsuriga [04.03.2005 18:48:41]

#

Parannusehdotuksia järjettömässä järjestyksesä:

1.) $texte_html?
2.) for ($i=0; $i<count($fm); $i++) { (vai kävisiköhän tuohon for ($i=0;$i++<count($fm);) {, enpäs ole kokeillut)
3.) Hyvät on kommentit
4.) Tiedostojen riveillä on kai rivinvaihdot lopussa? trimmiä kehiin
5.) Sulla on kaks for-lauseketta sisäkkäin jossa on sama $i-muuttuja.
6.) Miks jokaisen saajan kohdalla tuohon $this_html:ään pitäisi lisätä aina tuo testisivu.html?
7.) Hienot eli huonot sisennykset

pistemies [04.03.2005 20:54:25]

#

Kiitos!
Tuo $texte_html ei vaikuttanut muuhun kuin noihin rivinvaihtoihin.
Todellinen ratkaisu liittyi tuohon huomautukseesi nro 5. Siirsin tuon html-tiedoston for-silmukan pois tuon toisen sisältä. Nyt lähettää kaikille listalla oleville tuon viestin.

Entä tuo visaisempi kysymys. Nykyisellään se ilmoittaa lähettäjäksi:

Unprivileged user <nobody@www.int2000.net>

Minkälaisella scriptillä tuon voisi muuttaa?

Draiz [04.03.2005 20:59:18]

#

$mail_mime .= "From: Birthday Reminder <birthday@example.com>\r\n";

PHP.net neuvoi noin.

ajv [04.03.2005 20:59:59]

#

Headereihin

$mail_mime  = "From: php-skripti\n";

Äh. Mikä tässä on? ikäkö alkaa painamaan, kun oon näin hidas taas :(

pistemies [05.03.2005 08:52:29]

#

No niin. Kauan sain tehdä hommia, ennen kuin sain tuon toimimaan.
Mutta nyt se alkoi toimia niin kuin pitääkin.

Vastaus

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

Tietoa sivustosta