NetteExtension a SMTP mailer nastavení
- uestla
- Backer | 796
Zdravím.
Mám problém při pokusu o nastavení SMTP maileru v konfigu:
nette:
mailer:
smtp:
host: localhost
port: 25
Končí výjimkou Nette\Utils\AssertionException
: Missing
item ‚mailer‘ in array.
Může za to prý https://api.nette.org/…ion.php.html#235
Je to bug, nebo to nastavuji nedobře? Děkuji.
- Melmen
- Člen | 132
Nevím jak v konfigu, ale normálně by mělo podle dokumentace fungovat toto:
$mailer = new Nette\Mail\SmtpMailer(array(
'host' => 'smtp.gmail.com',
'username' => 'franta@gmail.com',
'password' => '*****',
'secure' => 'ssl',
));
$mailer->send($mail);
- misiak
- Člen | 28
Ja som to práve tiež riešil a nastavil som to takto:
<?php
nette:
session:
autoStart: smart
mail:
smtp:
email:
username:
password: ''
services:
nette.mailer:
class: Nette\Mail\SmtpMailer
?>
Mám za to, že to nie je správne ale ináč sa mi to spojazdniť nepodarilo a bohužial nemal som čas hľadať či je to bug alebo nie.
Editoval misiak (22. 2. 2012 9:35)
- Patrik Votoček
- Člen | 2221
misiak napsal(a):
Ja som to práve tiež riešil a nastavil som to takto:
email: stormioshop@kvasnicak.info username: stormioshop@kvasnicak.info password: 'yu;fryeg3' host: smtp.kvasnicak.info
Doporučuju ti v co nejkratší možné době změnit heslo! :-D
Edit: pokud už to neudělal někdo za tebe… :-D
- Patrik Votoček
- Člen | 2221
@uestla: to (bylo) je účelné aby byl donucen skutečně to heslo změnit a nikoli pouze smazat / upravit svůj post.
- kuzma88
- Člen | 15
maw napsal(a):
Tak jak to má tedy být správně? A funkčně? Prosil bych i příklad použití. Děkuji…
Jak jsem již napsal a viz dokumentace https://doc.nette.org/cs/configuring#…
Nastavení má být takto:
nette:
mailer:
smtp: true # zapne SmtpMailer místo SendmailMailer
# dále lze uvést host, port, username, password, secure, timeout
host: 'foo.bar.net'
username: 'foo@bar.net'
password: 'fooBarNet'
Editoval kuzma88 (10. 4. 2013 10:14)
- maw
- Člen | 6
kuzma88 napsal(a):
maw napsal(a):
Tak jak to má tedy být správně? A funkčně? Prosil bych i příklad použití. Děkuji…
Jak jsem již napsal a viz dokumentace https://doc.nette.org/cs/configuring#…
Nastavení má být takto:
nette: mailer: smtp: true # zapne SmtpMailer místo SendmailMailer # dále lze uvést host, port, username, password, secure, timeout host: 'foo.bar.net' username: 'foo@bar.net' password: 'fooBarNet'
Jj, už mi to funguje a použil jsem to něják takto (v presenteru):
$mail = new \Nette\Mail\Message;
$mail->setFrom("foo@bar.net")
->addTo("baz@bar.net")
->setSubject("info")
->setHtmlBody("Test")
->setMailer($this->getService('nette.mailer'))
->send();
Díky za užitečné rady..
- kuzma88
- Člen | 15
maw napsal(a):
kuzma88 napsal(a):
maw napsal(a):
Tak jak to má tedy být správně? A funkčně? Prosil bych i příklad použití. Děkuji…
Jak jsem již napsal a viz dokumentace https://doc.nette.org/cs/configuring#…
Nastavení má být takto:
nette: mailer: smtp: true # zapne SmtpMailer místo SendmailMailer # dále lze uvést host, port, username, password, secure, timeout host: 'foo.bar.net' username: 'foo@bar.net' password: 'fooBarNet'
Jj, už mi to funguje a použil jsem to něják takto (v presenteru):
$mail = new \Nette\Mail\Message; $mail->setFrom("foo@bar.net") ->addTo("baz@bar.net") ->setSubject("info") ->setHtmlBody("Test") ->setMailer($this->getService('nette.mailer')) ->send();
Díky za užitečné rady..
Osobně bych si do presentru nezaváděl Service Locator
$this->getService('nette.mailer')
Ale spíš si mailer injectul do presenteru:
/** @var IMailer */
private $mailer;
public function injectMailer(IMailer $mailer)
{
$this->mailer = $mailer;
}
nebo
public function __construct(IMailer $mailer)
{
$this->mailer = $mailer;
}
a pak
$mail = new \Nette\Mail\Message;
$mail->setFrom("foo@bar.net")
->addTo("baz@bar.net")
->setSubject("info")
->setHtmlBody("Test")
->setMailer($this->mailer)
->send();
Editoval kuzma88 (12. 4. 2013 13:42)
- jiri.pudil
- Nette Blogger | 1028
Ještě bych doplnil, že Message::send() je v masteru deprecated, takže raději takto:
$mail = new \Nette\Mail\Message;
$mail->setFrom("foo@bar.net")
->addTo("baz@bar.net")
->setSubject("info")
->setHtmlBody("Test");
$this->mailer->send($mail);