Nette\Mail\Message – proč se email neodeslal
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Zerig
- Člen | 70
Zdravím,
problém spočívá v tom, že vše proběhne, nikde nenaskočí chyba, ale
email jsem dosud neobdržel.
<?php
use Nette\Application\UI\Form;
use Nette\Mail\Message;
/**
* Sign in/out presenters.
*/
class AccountPresenter extends BasePresenter
...
/**
* Pozvání kamaráda
* return Nette\Application\UI\Form
*/
protected function createComponentInviteFriendForm()
{
$form = new Form();
$form->addText('email', 'Email:')
->addRule(Form::EMAIL, 'Je nutné zadat platný email.')
->setEmptyValue('@');
$form->addSubmit('submit', 'Odeslat');
$form->onSuccess[] = $this->inviteFriendFormSubmitted; // Co má formulář udělat, když uspěje
return $form;
}
public function inviteFriendFormSubmitted(Form $form)
{
$mail = new Message;
$mail->setFrom('jeronym.p@centrum.cz')
->addTo('jeronym.p@seznam.cz')
->setSubject('Potvrzení objednávky')
->setBody("Dobrý den,\nvaše objednávka byla přijata.")
->send();
$this->flashMessage('pozvání odesláno.', 'success');
$this->redirect('this');
}
Jak vidíte ještě jsem ani nepředávám data z formuláře, jen
posílám, to, co je v návodu na nette.
Navíc po odeslání formuláře se zobrazí hláška ‚pozvání
odesláno‘
Kde je problém?
- romiix.org
- Člen | 343
Asi sa síce podarí odoslať mail php funkciou mail()
, ale
stratí sa ako spam niekde cestou.
Odporúčam použiť try catch a SMTP mailer. Ten následne cez DI dodaj presentru ako službu Nette\Mail\IMailer.