SmtpMailer načtení konfigurace
- MedaKeR
- Člen | 14
V souboru common.neon mám nastavení mailu
...
mail:
smtp: true
host: 'smtp.seznam.cz'
port: 465
username: 'user@email.cz'
password: 'VtlSHgxGM8WyMik'
encryption: null
...
a následně si v presenteru vytvořím SmtpMailer:
$mail = new Message;
$mail->setFrom('Admin <user@email.cz>')
->addTo("someone@gmail.com")
->setSubject('Mail')
->setHtmlBody("content");
$mailer = new Nette\Mail\SmtpMailer();
$mailer->send($mail);
Očekával jsem, že když konsturktoru SmtpMailer nedám array parametrů (což je na webu velmi matoucí), tak se načte výchozí konfigurace z common.neon. Takto jak to mám, se však načte výchozí nastavení z php.ini.
Jakým způsobem do SmtpMaileru dostat nastavení z common.neon?
Editoval MedaKeR (5. 4. 2023 13:25)
- nightfish
- Člen | 518
@MedaKeR
Použij DI
a vyžádej si službu typu Nette\Mail\Mailer
– Nette ti pak
vrátí buď SmtpMailer nebo SendmailMailer, v závislosti na tom, co si
nakonfiguruješ v config.neon
.
Když ve svém kódu použiješ napřímo new SmtpMailer()
, tak
k žádnému automatickému doplňování (autowiringu) parametrů
nedochází.
- Marek Bartoš
- Nette Blogger | 1274
Mailer si máš vyžádat jako službu, ne ho vytvářet.
V konstruktoru maileru není žádná magie, kterou by se config získal
z neonu. Z configu v neonu se vygeneruje DIC (najdeš ho ve složce
temp/nette.configurator) a v tom se mailer vytváří přes new, stejně jako
bys to udělal ty.
- MedaKeR
- Člen | 14
David Grudl napsal(a):
@MedaKeR Napadá tě, jak konkrétně to v dokumentaci vysvětlit?
Teď jak mi to bylo vysvětleno, to v té dokumentaci vidím. Tím matoucí mám na mysli to, že na webu je dokumentace pro v4.0.0 ale na gitu je stále v3.1.10 jako Release (čiže composer tahá právě tu starší verzi, kde konstruktor přijímá array).
Díky, problém vyřešen. :)
- David Grudl
- Nette Core | 8227
To je divný, viz https://github.com/…s/tag/v4.0.0.
Pravděpodobně instalaci v4 znemožňují jiné knihovny.
- Marek Bartoš
- Nette Blogger | 1274
composer why-not nette/mail ^4.0.0
ti řekne, proč poslední
verzi nemůžeš nainstalovat
Případně composer update "nette/mail ^4.0.0" -W