Nejste přihlášeni
Ahoj, mám menší problém, vím že tu asi možná nenajdu to co potřebuji ale i tak zkusím se tu optat zkušenějších. Problém se týká odesílání dat z formuláře na mail. Vše mi dříve fungovalo teď prostě ne.
Tracy mi vypsala hlášku typu: Unable to send email což jsem i vyhledal ale nic neřešilo můj problém. Všechny data se dle tracy odešlou správně i post požadavek vypadá dobře data se předávají i do šablony ale nastane problém někde na řádku s
$this->mailer->send($message);
Email se tím samozřejmě neodešle. Docela mi to hodilo brouka do hlavy a nevím čím to může být.
Email jsem samozřejmě nahradil za xxx jako cenzuru.
Přikládám zde část kódu:
protected function createComponentContactForm() {
$form = new Form();
$select = [
'For Czech Republic' =>
[
'webAPP' => 'Tvorba webové aplikace',
'mcPlugin' => 'Tvorba minecraft pluginu',
'dotaz' => 'Dotaz',],
'For Great Britain/ United States of America' =>
[
'webAPP' => 'Creating web appliaction',
'mcPlugin' => 'Creating minecraft plugin',
'dotaz' => 'Question',],
];
$form->addSelect('select', 'Řazení Požadavku:', $select)
->setPrompt('Zvolte požadavek');
$form->addText('name', 'Jméno')
->setHtmlType('name')
->setHtmlAttribute('placeholder', 'Zadejte celé vaše jméno')
->setRequired('Zadejte prosím celé vaše jméno !');
$form->addText('email', 'E-mail')
->setRequired('Zadejte prosím váš e-mail')
->setHtmlType('email')
->setHtmlAttribute('placeholder', 'Příklad: váš.email@seznam.cz')
->addRule(Form::EMAIL, 'Zadejte správně email, zkontrolujte překlepy.');
$form->addTextArea('message', 'Zpráva')
->addRule(Form::FILLED, 'Vyplňte prosím obsah zprávy !')
->addRule(Form::MAX_LENGTH, 'Zpráva je příliš dlouhá', 10000);
$form->addCheckbox('agree', Html::el('p')->setHtml('Souhlasím s podmínkami <a href="/terms/">Terms about me services with Gdpr.</a>'))
->setRequired('Je potřeba souhlasit s podmínkami');
$form->addText('y', 'Zadejte aktuální rok')
->setOmitted(true)
->setHtmlType('y')
->setHtmlAttribute('placeholder', 'Zadejte aktuální rok ')
->setRequired('Vyplň prosím antispam !')
->addRule(Form::EQUAL, 'Chybně vyplněný antispam.', date("Y"));
$form->addProtection('Security token has expired, please submit the form again');
$form->addSubmit('send', 'Odeslat');
$form->onRender[] = [$this, 'makeBootstrap4'];
$form->onSuccess[] = [$this, 'processContactForm'];
return $form;
}
/**
* Process contact form, send message
* @param Form
*/
/** @var \Nette\Mail\IMailer @inject */
public $mailer;
public function processContactForm(Form $form)
{
$values = $form->getValues(true);
$message = new Message;
$message->addTo('xxxxxx')
->setFrom($values['email']);
$template = $this->createTemplate();
$template->setFile(__DIR__ . '/templates/Email/emailTemplate.latte');
$template->title = 'Zpráva z kontaktního formuláře';
$template->values = $values;
$message->setHtmlBody((String) $template);
$this->mailer->send($message);
$this->presenter->flashMessage('Zpráva byla odeslána', 'success');
$this->redirect('this');
}
Offline
Dobrý den, mě také přestaly odcházet e-maily z PHP - funkce mail. Od včerejška mám záznamy v databázi, ale mailová notifikace nikde.
Změnilo se něco v nastavení Endory? A co prosím?
Díky Pavel S.
Offline
Dobry den,
muzete prosim vyzkouset nyni? Problem by mel byt opraven. Omlouvame se za komplikace.
Offline
Potvrzuji funkčnost opět funguje. Done
Offline
I u mě funguje bez potíží - díky moc za opravu...
Offline