Kódování zprávy v e-mailu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Milda
Člen | 9
+
0
-

Dobrý den,
Chtěl bych se zeptat někoho zkušeného. Níže mám formulář na odesílání e-mailu který funguje správně ale problém je v tom, že když mi přijde e-mail, tak se mi nezobrazují háčky a čárky. Nefunguje Diakritika (omlouvám se, nevím jak se to píše)

Mohl by mi prosím někdo poradit?

class KontaktPresenter extends BasePresenter
{
    private $duvod = array('Technický dotaz', 'Předběžná objednávka', 'Informace');

    public function createComponentContactForm() {
        $form = new AppForm($this, 'contactForm');
        $form->getRenderer()->setClientScript(new LiveClientScript($form));
        $form->addText('name', 'Jméno:')
             ->addRule(Form::FILLED, 'Chyba');
        $form->addText('email', 'Email:')
             ->addRule(Form::FILLED, 'Chyba')
             ->addCondition(Form::FILLED)
             ->addRule(Form::EMAIL, 'Chyba');
        $form->addText('mesto', 'Město:')
             ->addRule(Form::FILLED, 'Chyba');
        $form->addText('tel', 'Telefon:')
             ->addRule(Form::FILLED, 'Chyba')
             ->addCondition(Form::FILLED)
             ->addRule(Form::INTEGER, 'Chyba');
        $form->addTextArea('zprava', 'Zpráva:')
             ->addRule(Form::FILLED, 'Chyba');
        $form->addSelect('duvod', 'Důvod zprávy', $this->duvod)->setValue(0);
        $form->addSelect('dulezitost', 'Důležitost', array(1 => 'Vysoká', 3 => 'Normální', 5 => 'Nízká'))->setValue(3);
        $form->addSubmit('send', 'Odeslat');
        $form->onSubmit[] = array($this, 'handleContactForm');

        return $form;
    }

    public function handleContactForm(AppForm $form) {
        $values = $form->getValues();
        $mail = new Mail;
        $mail->addTo('milda6@seznam.cz');
        $mail->setFrom($values['email'], $values['name']);
        $mail->setPriority($values['dulezitost']);
        $mail->setSubject($this->duvod[$values['duvod']]);
        $zprava = 'Zpráva: ' . $values['zprava'] . "\n";
        $zprava .= 'Telefon: ' . $values['tel'];
        $zprava .= "\nMěsto: \n" . $values['mesto'] . "\n";
        $mail->setBody($zprava);

        $mail->send();

        $this->flashMessage('Zpráva byla úspěšně odeslána, v nejbližším možném termínu Vám odpovíme.', 'success');
        $this->redirect('Kontakt:show');
    }
}
iguana007
Člen | 970
+
0
-

když zprávu ($zprava) vyplníš na pevno znaky s diakritikou, tak je to ok?

  1. Pokud ano, tak je asi problém ve formuláři (zřejmě stránka, kde form zobrazuješ není v UTF-8)
  2. Pokud ne, tak je asi problém v emailovém klientovi, který si neumí poradit s UTF-8
Milda
Člen | 9
+
0
-

Stránky mám v kódování: windows-1250

Filip Procházka
Moderator | 4668
+
0
-

Stránky předělej do kódování utf-8. Máš nějaký příčetný důvod, proč by jsi v něm neměl web? Vsadím boty, že nemáš.

Celé Nette je v UTF-8 a pokud v něm nebudeš mít i web, tak to prostě nebude fungovat. Tečka.

Editoval HosipLan (9. 10. 2011 17:54)

hAssassin
Člen | 293
+
0
-

[OT] docela se divim, ze 1250 jeste preziva… sem myslel ze co se webu tyce je uz davno mrtva, ale to sami by se dalo rict o IE6 a 7… stejne tak jako preziva Latin2 (iso-8859–2) ale tam se to jeste da tolerovat :) [/OT]

Milda
Člen | 9
+
0
-

Už je to v pohodě. Změnil jsem to na UTF-8 a je to parádní

Milda
Člen | 9
+
0
-

Děkuju Vám za rady. Ještě mám poslední dotaz, jde tam přidělat odesílání příloh? Chci to co nejjednoduší.

Jan Endel
Člen | 1016
+
0
-

Dokumentace mailování:

$mail->addAttachment('example.zip')

může to být ještě jednoduší?

Editoval pilec (9. 10. 2011 18:11)

Milda
Člen | 9
+
0
-

Přidal jsem to tam ale to mi nefunguje. Asi budu těžká lama ale nepochopil jsem to. Když to přidám do výše zobrazeného kódu, tak to nefunguje

Milda
Člen | 9
+
0
-

Jde mi o to, aby mohl uživatel který vyplňuje formulář přiložit i soubor jako přílohu k e-mailu.