SmtpMailer pomoci NetteExtension
- Jan Mikeš
- Člen | 771
Snazim se nakonfigurovat SmtpMailer pomoci NetteExtension, viz https://forum.nette.org/…-config-neon
Po vypsani maileru z kontejneru (pro kontrolu) jsou uvedeny stale default udaje a mnou uvedene v configu se neberou v potaz.
Toto: https://forum.nette.org/…er-nastaveni nepomohlo
Config.neon:
nette:
mailer:
smtp:
host: 'smtp.savana.cz'
port: 25
username: 'xxx'
password: 'xxxxx'
Po vypsani print_r($this->context->nette->mailer);
pro
kontrolu v presenteru nasledujici vystup s default hodnotama:
Nette\Mail\SmtpMailer Object
(
[connection:Nette\Mail\SmtpMailer:private] =>
[host:Nette\Mail\SmtpMailer:private] => localhost
[port:Nette\Mail\SmtpMailer:private] => 25
[username:Nette\Mail\SmtpMailer:private] =>
[password:Nette\Mail\SmtpMailer:private] =>
[secure:Nette\Mail\SmtpMailer:private] =>
[timeout:Nette\Mail\SmtpMailer:private] => 20
)
Co delam spatne?
- David Matějka
- Moderator | 6445
ty udaje musi byt o uroven vys..
nette:
mailer:
smtp: nesmi byt prazdne ale nebere se v potaz
host: 'smtp.savana.cz'
port: 25
username: 'xxx'
password: 'xxxxx'
- ViPEr*CZ*
- Člen | 817
Toto by mělo fungovat podle dokumentace: https://doc.nette.org/cs/configuring#…
- zkuste po dokončení nastavení smazat cache.
- Jan Mikeš
- Člen | 771
Jeste by me zajimalo, jak dostanu
$container->nette->createMail()
do presenteru (componenty)
bez pouziti CONTEXTu?
Momentalne pouzivam toto:
// v presenteru si vstriknu mailer
public function injectMailer(Nette\Mail\SmtpMailer $mailer)
{
if ($this->mailer)
throw new Nette\InvalidStateException('Mailer has already been set');
$this->mailer = $mailer;
}
// ktery pak predavam komponente
protected function createComponentRegisterForm(){
$form = new Forms\RegisterForm(..., $this->mailer, ...);
// ...
}
A v komponente pak odesilam maily timhle zpusobem:
$mail = new Nette\Mail\Message;
$mail->setMailer($this->mailer)->...->send();
// $this->mailer->send($mail); nefunguje, vyhazuje vyjimku RCP TO: xxx refused by SMTP server
Je toto spravne reseni? Da se pripadne nejak mailer nastavit jako default tak
abych ho nemusel predavat do kazde komponenty ve ktere chci odesilat emaily?
Kdyz ho nepredam a nenatavim ho pomoci ->setMailer()
tak se mi
pouzije klasicky SendmailMailer
- David Matějka
- Moderator | 6445
necha se nastavit staticky, ale to neni moc hezky :)
https://api.nette.org/…age.php.html#39
mozna by stalo za to vytvorit sluzbu neco jako MailFactory, ktera by prijimala mailer a mela by metodu createMessage, co by vytvorila message a treba i rovnou nejak nakonfigurovala