Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: sähköposti-viestin erikoismerkit

pistemies [13.05.2010 16:28:16]

#

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";

Macro [13.05.2010 18:32:55]

#

Eikö ohjelma suostu lähettämään erikoismerkeillä varustettua viestiä, vai pystyykö se lähettämään mitään?

pistemies [13.05.2010 21:01:22]

#

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&auml;m&auml; l&auml;htee s&auml;hk&ouml;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.

Othnos [14.05.2010 00:02:38]

#

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);
?>

Merri [14.05.2010 02:31:08]

#

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.

pistemies [14.05.2010 14:04:30]

#

Kovin näyttää olevan hankala saada onnistumaan tekstinä.
Saattaa olla helpompi yrittää html-viestiä, kun siinä tekstissä jo toimi &auml; 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);

Vastaus

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

Tietoa sivustosta