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.