Service of type Nette\Mail\SmtpMailer not found – Nette 2.3

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

Zdravím,
provedl jsem upgrade a Nette 2.3 a začlo mi to házet problém s DI. Konkrétně:

Service '105_Exsys_Email_EmailService': Service of type Nette\Mail\SmtpMailer needed by Exsys\Email\EmailService::__construct() not found. Did you register it in configuration file?

díval jsem se na namespace a měl by být OK. Ještě radší přikládám composer.json:

{
	"repositories" : [
		{
			"type": "package",
			"package":{
				"name": "h4kuna/gettext-latte",
				"version": "1.4",
				"source": {
					"url": "https://github.com/jasin755/gettext-latte",
					"type": "git",
					"reference": "1.3"
				},
				"autoload": {
					"classmap": [""]
				}
			}
		}
	],
	"require" : {
		"nette/nette" : "2.3.0",
		"kdyby/doctrine" : "~2.0",
		"jkuchar/pdfresponse" : "dev-master",
		"h4kuna/gettext-latte" : "1.4.*@dev",
		"olicek/google-map-api" : "dev-master",
		"jms/serializer" : "dev-master",
		"doctrine/search" : "dev-master",
		"ruflin/Elastica" : "dev-master"
	},

	"autoload" : {
		"psr-0" : {
			"Exsys\\" : "app/Model",
			"Nella\\" : "app/Model",
			"Extractor\\" : "app/Model"
		},

		"classmap" : ["app/presenters"]
	}
}
studna
Člen | 181
+
0
-

A ten SmtpMailer máš definovaný v neonu?

jasin755
Člen | 116
+
0
-

@studna Nemám, ani předtím jsem neměl a nikde jsem ani nenašel jak by měl být definovaný.

Editoval jasin755 (9. 3. 2015 14:40)

studna
Člen | 181
+
+1
-

Pokud potřebuješ používat SmtpMailer, musíš si ho „zapnout“ https://doc.nette.org/cs/configuring#…. Ve 2.3 je výchozí SendmailMailer, který odesílá pomocí fce mail().

Nejlepší bude, když si konstruktor služby Exsys\Email\EmailService upravíš tak, aby příjmal obecné rozhraní IMailer namísto konkrétní třídy.

jasin755
Člen | 116
+
0
-

Super funguje. Díky