Autor Zpráva
frauen
Profil *
Zdravím,

řeším následující problém. Chtěl bych posílat polední menu emailem, mám však menší problém. V textu se náhodně po nějakém určitém bloku textu naskytne znak "!" a tím pádem pak v HTML zobrazení zpracuje špatně výsledek.

Nyní posílám jako plain text s následujícím výsledkem:

<div><p class="center">Platí od 11.6.2012 do 15.6.2012.<br>Podáváme od 11:00 do 15:00.</p><table class="list"><tr><th colspan="3">Pondělí</th></tr><tr><td class="quantity"></td><td>Sváteční kaldon</td><td class="price">19,-</td></tr><tr><td class="quantity">120 g</td><td>Plzeňský guláš (bramboráček, rýže, HK, BK, sázené vejce, uzenina)</td><td class="price">70,-</td></tr><tr><td class="quantity">120 g</td><td>Smažené sýry dvou chutí se šťouchanými brambory s mladou cibulkou a tatarskou omáčkou (hranolky)</td><td class="price">70,-</td></tr><tr><td class="quantity">150 g</td><td>Kuřecí steak na grilu s volským okem a bramborovými haluškami s kysaným zelím (hranolky)</td><td class="price">75,-</td></tr><tr><th colspan="3">Úterý</th></tr><tr><td class="quantity"></td><td>Česnečka se sýrem a opečeným chlebem</td><td class="price">16,-</td></tr><tr><td class="quantity">150 g</td><td>Holandský řízek s bramborovou kaší, okurka</td><td c!
 lass="price">70,-</td></tr><tr><td class="quantity">130 g</td><td>Kuřecí prsíčko plněné sušenými rajčátky, mozzarellou a bazalkou, hranolky (bramborová kaše)</td><td class="price">75,-</td></tr><tr><td class="quantity">120 g</td><td>Vepřový plátek na grilu s pikantní omáčkou z čerstvých paprik s domácími bramborovými placičkami (hranolky)</td><td class="price">70,-</td></tr><tr><td class="quantity">3 ks</td><td>Oříškové palačinky s limetkovým tvarohem a borůvkami</td><td class="price">68,-</td></tr><tr><th colspan="3">Středa</th></tr><tr><td class="quantity"></td><td>Zelná s opečenou klobáskou, bramborem a smetanou</td><td class="price">19,-</td></tr><tr><td class="quantity">120 g</td><td>Svíčková omáčka se špikovaným hovězím  masem s brusinkami a houskovým knedlíkem</td><td class="price">70,-</td></tr><tr><td class="quantity">130 g</td><td>Kuřecí prsíčko s dušenou brokolicí a baby karotkou na bylinkovém másle, nové bra!
 mbory</td><td class="price">70,-</td></tr><tr><td class="quant!
 ity">150
 g</td><td>Vepřový steak se smetanovým křenem, hořčicí a selskými brambory</td><td class="price">75,-</td></tr><tr><td class="quantity">250 g</td><td>Míchaný zeleninový salát s kousky grilovaného kuřecího masa s dresinkem ze zakysané smetany, toust</td><td class="price">70,-</td></tr><tr><th colspan="3">Čtvrtek</th></tr><tr><td class="quantity"></td><td>Slepičí vývar s fridátovými nudlemi a zeleninou</td><td class="price">16,-</td></tr><tr><td class="quantity">150 g</td><td>Pečená vepřová plec po selsku s listovým špenátem a bramborovým knedlíkem</td><td class="price">70,-</td></tr><tr><td class="quantity">120 g</td><td>Panenka plněná sušenými švestkami balená v parmské šunce se šťouchanými brambory s pórkem a smetanou</td><td class="price">79,-</td></tr><tr><td class="quantity">150 g</td><td>Krůtí steak na grilu, marinovaný v čerstvých bylinkách s houbovou omáčkou a těstovinami penne (hranolky)</td><td class="price">75,-</!
 td></tr><tr><td class="quantity">150 g</td><td>Restovaná drůbeží játra na cibulce s rýží</td><td class="price">70,-</td></tr><tr><th colspan="3">Pátek</th></tr><tr><td class="quantity"></td><td>Hrachová se slaninou a opečenou houskou</td><td class="price">19,-</td></tr><tr><td class="quantity">120 g</td><td>Minutkový gulášek z krůtího masa sypaný sýrem s rýží (bramboráčky)</td><td class="price">70,-</td></tr><tr><td class="quantity">150 g</td><td>Sekaný biftek na grilu, balený v anglické slanině plněný  sýrem eidam se šťouchanými bramborami s petrželkou</td><td class="price">75,-</td></tr><tr><td class="quantity">250 g</td><td>Francouzské brambory s okurkou</td><td class="price">70,-</td></tr><tr><td class="quantity">120 g</td><td>Kuřecí medailonky na šalvěji a víně se steakovými hranolky (rýže)</td><td class="price">70,-</td></tr><tr><th colspan="3">Nápoje a ostatní</th></tr><tr><td class="quantity"></td><td>Malá polévka (14,!
 - Kč)</td><td class="price">11,-</td></tr><tr><td class="quan!
 tity">0,
3l</td><td>Kofola točená k polednímu menu</td><td class="price">13,-</td></tr><tr><td class="quantity">0,25l</td><td>Bonaqua (neperlivá, jemně perlivá, perlivá) k polednímu menu</td><td class="price">15,-</td></tr><tr><td class="quantity">0,2l</td><td>Pomerančový džus cappy k polednímu menu</td><td class="price">14,-</td></tr><tr><td class="quantity">0,3l</td><td>Staropramen 10° k polednímu menu</td><td class="price">14,-</td></tr><tr><td class="quantity">0,33l</td><td>Stella Artois nealko k polednímu menu</td><td class="price">23,-</td></tr></table></div>

Zvýraznil jsem tučně problém.

V databázi mám vše v pořádku, jen do mailu to chodí takto.

Kód pro zasílání:

<?php

/**
 * Zakódování e-mailové hlavičky podle RFC 2047
 *
 * @param string text k zakódování
 * @param string kódování, výchozí je utf-8
 * @return string řetězec pro použití v e-mailové hlavičce
 * @copyright Jakub Vrána, http://php.vrana.cz/
 */
function mime_header_encode($text, $encoding = "utf-8") {
    return "=?$encoding?Q?" . imap_8bit($text) . "?=";
}

$from = 'xxx'; // skryto úmyslně
$sender = $cfg['title'];
$to = $row_email['email'];
$headers = "Content-Type: text/plain; charset=utf-8\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "From: " . mime_header_encode($sender) . " <" . $from . ">\n";
$headers .= "Reply-To: " . mime_header_encode($sender) . " <" . $from . ">";
$message = '<div>';
$message .= '<p class="center">Platí od ' . date('j.n.Y', strtotime($row['date'])) . ' do ' . date('j.n.Y', strtotime($row['date_2'])) . '.<br>Podáváme od 11:00 do 15:00.</p>' . $row['public'] . '</div>';
$subject = 'Polední menu od ' . date('j.n.Y', strtotime($row['date'])) . ' do ' . date('j.n.Y', strtotime($row['date_2']));
mail($to, mime_header_encode($subject), $message, $headers);
?>

V čem by mohl být problém?

Děkuji za rady.
abc
Profil
frauen:
Problém je s moc dlouhými řádky.
Nejjednodušší řešení bude používat Content-Transfer-Encoding: base64
A za řádek 24 přidat $message = chunk_split(base64_encode($message));
A tohle téma myslím patří do kategorie PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: