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
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
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?
$mail_mime .= "From: Birthday Reminder <birthday@example.com>\r\n";
PHP.net neuvoi noin.
Headereihin
$mail_mime = "From: php-skripti\n";
Äh. Mikä tässä on? ikäkö alkaa painamaan, kun oon näin hidas taas :(
No niin. Kauan sain tehdä hommia, ennen kuin sain tuon toimimaan.
Mutta nyt se alkoi toimia niin kuin pitääkin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.