Sähköpostiviesti sisälsi merkkejä &, ; ja ohjelma ei suostunut sitä lähettämään. Kun se oli ilman niitä, niin lähetti viestin. Miten nää tulis olla:
$mime_tyyppi = "Date: ".date("l j F Y, G:i")."\r\n"; $mime_tyyppi .= 'MIME-Version: 1.0'."\r\n"; $mime_tyyppi .= 'Content-type: text/html; charset=iso-8859-1'."\r\n"; $mime_tyyppi .= FROM."\r\n"; $mime_tyyppi .= 'Content-Transfer-Encoding: 7bit'."\n\n"; $texte .= $teksti; $texte .= "\n\n\n";
Eikö ohjelma suostu lähettämään erikoismerkeillä varustettua viestiä, vai pystyykö se lähettämään mitään?
Tuo edellinen ei ollut se, jolla onnistuin laittamaan viestiä. En ole kokeillut, miten se laittaa ilman erikoismerkkejä.
Mutta testasin tällä. Tämän se lähettää:
<?php $data="Tervehdys! Tämä lähtee sähköpostilla mihin vaan..."; $aihe="Viestin aihe"; $mihin="mun@mail.com"; $mista="oma@mail.fi"; mail($mihin,$aihe,$data,"From:$mista"); ?>
Ääkköset tulevat kysymysmerkkeinä. Mutta tätä se ei lähetä:
<?php $data="Tervehdys! Tämä lähtee sähköpostilla mihin vaan..."; $aihe="Viestin aihe"; $mihin="mun@mail.com"; $mista="oma@mail.fi"; mail($mihin,$aihe,$data,"From:$mista"); ?>
Arvelen, että syy, miksi tuo ylempi eka-viestini ohjelma ei laita viestiä, on sama kuin tässä alimmassa.
ps. testasin sen verran varsinaista ohjelmaa, vaikka poistin siitä erkoismerkit ääkkösistä ja viestissä olevista linkeistä, ei toiminut. Pitää kokeilla vielä ilman html-tageja.
Ps 2: Nyt onnistui laittamaan viestiä tavallisena tekstinä. Pitäs vaan saada nuo ääkköset toimimaan oikein.
Pekka Mansikka kirjoitti:
Ps 2: Nyt onnistui laittamaan viestiä tavallisena tekstinä. Pitäs vaan saada nuo ääkköset toimimaan oikein.
Näyttäisi onnistuvan, kun encodeat ääkköset UTF-8 ja laitat headereiden mukana menemään kyseisen charsetin. Joku viisas voi kertoa paremman ratkaisun, kuin tämä "purkkaviritys".
<?php //Käännetään ääkköset UTF-8:si $data=htmlentities("Tervehdys! Tämä lähtee sähköpostilla mihin vaan...", ENT_COMPAT, "UTF-8"); $aihe="Viestin aihe"; $mihin="mattisav@mbnet.fi"; //Määritetään lähettäjäksi oma@mail.fi ja charsetiksi UTF-8. $mista="From: oma@mail.fi\n"."Content-Type: text/html; charset=\"UTF-8\""; mail($mihin,$aihe,$data,$mista); ?>
Pitänee huomauttaa, että Othnos todennäköisesti on myös tallentanut tiedoston editorilla UTF-8:na, joten vastaavasti sivuilta tulevan tiedon pitäisi olla UTF-8:aa.
Miten lie htmlspecialcharsin laita... en ole sähköpostitestejä vielä tehnyt.
Kovin näyttää olevan hankala saada onnistumaan tekstinä.
Saattaa olla helpompi yrittää html-viestiä, kun siinä tekstissä jo toimi ä merkit ;)
Minulla on sivun charset iso-8859-1, enkä tuota mielellään lähde muuttelemaan, koska siinä joutuu varmaan tekemään paljon lisähommia, jotta kaikki sivuilla tulostuu oikein.
Ps. Vihdoinkin sain ääkköset toimimaan.Tämä toimitti asian niinku piti:
$message="Hei $nimi Sinun ilmoituksesi, joka olet laittanut verkkopalveluun pla pla pla, on vanhenemassa muutaman päivän kuluttua. Voit halutessassi pitentää ilmoituksesi aikaa linkistä http://pla pla pla/index.php?ilmoitus=muokkaa&numero=$ilm&ct=$ilmo syöttämällä ilmoitukselle antamasi salasanan. Ilmoitusaikaa on vielä jäljellä $date"; $message = utf8_decode($message); $body = "<html>\n"; $body .= "<head>\n"; $body .= "<meta http-equiv=Content-Type content=\"text/html; charset=ISO-8859-1\">\n"; $body .= "</head>\n"; $body .= "<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#666666;\">\n"; $body = $message."\n"; $body .= "</body>\n"; $body .= "</html>\n"; $headers = "From: no-reply@pla pla pla<noreply@pla pla pla>\r\n"; $headers .= "Reply-To: asiakaspalvelu@pla pla pla\r\n"; $headers .= "X-Mailer: Drupal\n"; $headers .= 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html;charset=ISO-8859-1'. "\r\n"; return mail($mail, "Muistutus pla pla pla", $message, $headers);
Aihe on jo aika vanha, joten et voi enää vastata siihen.