NetteExtension a SMTP mailer nastavení

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
uestla
Backer | 796
+
0
-

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
+
0
-

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);
uestla
Backer | 796
+
0
-

Mně jde právě o ten konfig, ale dík…

misiak
Člen | 28
+
0
-

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)

Jan Endel
Člen | 1016
+
0
-

Je rozumné tu na fórum postovat heslo? :)

Patrik Votoček
Člen | 2221
+
0
-

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

uestla
Backer | 796
+
+2
-

Ještě rozumnější je jeho příspěvek s heslem citovat, aby zde zůstalo i když svůj příspěvek potom změní, dobrá práce… :\

Editoval uestla (19. 2. 2012 18:58)

Patrik Votoček
Člen | 2221
+
0
-

@uestla: to (bylo) je účelné aby byl donucen skutečně to heslo změnit a nikoli pouze smazat / upravit svůj post.

misiak
Člen | 28
+
0
-

Jesus :D ale to nevadí aj tak. TO je len dev mail :)

V rýchlosti som len to skopčil.. Stane sa :D hlavne ak je to nepodstatný údaj v tomto prípade. lebo sa to potom aj tak zmaže na serveri :D

Editoval misiak (22. 2. 2012 9:38)

uestla
Backer | 796
+
0
-

Bohužel misiakova rada nepomohla, následující však ano:

nette:
	mailer:
		smtp:
			host: ...
			# ...
		mailer: []

Nevím proč, ale požaduje se, aby v maileru byla ještě položka mailer a aby to bylo pole…

PS: Díky Vrtáku, že nám tu uchováváš heslo… Dobrá práce.

kuzma88
Člen | 15
+
0
-

Nastavení má být takto:

nette:
	mailer:
		smtp: true
		host: 'foo.bar.net'
		username: 'foo@bar.net'
		password: 'fooBarNet'

Editoval kuzma88 (10. 4. 2013 10:14)

maw
Člen | 6
+
0
-

Tak jak to má tedy být správně? A funkčně? Prosil bych i příklad použití. Děkuji…

kuzma88
Člen | 15
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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);