Nastevení a použití SMTP pro odesílání e-mailu

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

Zdravím, vyzkoušel jsem už různé kombinace které jsem našel na fŕu, ale za boha nemohu rozchodit SMTP mail.
Když jsem docílil, toho, že mi to nehodí chybu ve spojení, tak odeslaný e-mail nepřijde.

Neexistuje již nejaká cená rada?

Neon:

	parameters:
		smtp:
			smtp: true
			host: server
			username: user
			password: pass
			secure: ssl
			port: 465

	services:
		nette.mailer: Nette\Mail\SmtpMailer(%smtp%)

V aplikaci mámpak již

$mail = new Message;
$mail->setFrom($this->sender[0], $this->sender[1]);
...

$mailer = \Nette\Environment::getService('nette.mailer');
try
{
     $mail->setMailer($mailer);
     //$mailer->send($mail);
     return TRUE;
}
catch(\Nette\Mail\SmtpException $e)
{
      return FALSE;
}

Aplikace nespadne, ale e-mail žádný nepřijde. Když použiji

$mailer->send($mail);

Tak sice e-mail přijde, ale z loalhostu :-/

Už si moc nevím rady, pokud by měl někdo myšlenku, budu rád. Díky

PavelJurasek
Člen | 39
+
0
-

Sekci smtp: přesuň z parameters: do sekce nette: a smaž definici maileru v services
Viz https://forum.nette.org/…-config-neon, první post

Edit: Nepoužívej Nette\Environment, vyžádej si SmtpMailer v kontruktoru, nebo použij inject metodu, nebo @inject anotaci.

Editoval PavelJurasek (20. 11. 2013 21:39)

iwory
Člen | 147
+
0
-

PavelJurasek napsal(a):

Sekci smtp: přesuň z parameters: do sekce nette: a smaž definici maileru v services
Viz https://forum.nette.org/…-config-neon, první post

Edit: Nepoužívej Nette\Environment, vyžádej si SmtpMailer v kontruktoru, nebo použij inject metodu, nebo @inject anotaci.

Ano, to byla moje první cesta, chyba sice neastane ale e-mail nepřijde :-/

	nette:
		mailer:
			smtp: true
			host: server
			username: user
			password: pas
			secure: ssl
			port: 465
romiix.org
Člen | 343
+
0
-

Hľadal by som problém v nastavení SPAM-u. Neprijme sa mail náhodou rovno do koša?

iwory
Člen | 147
+
0
-

romiix.org napsal(a):

Hľadal by som problém v nastavení SPAM-u. Neprijme sa mail náhodou rovno do koša?

Už jsem taky koukal a nic tam není.
Když ho pošlu skrze

$mail->setMailer($mailer);

tak se odešle a nepřijde

Když skrze

$mailer->send($mail);

Tak skončí chybou:


exception 'Nette\Mail\SmtpException' in /var/www/virtual/web.cz/htdocs/libs/Nette/Mail/SmtpMailer.php:113
Stack trace:
#0 /var/www/virtual/web.cz/htdocs/libs/Nette/Mail/SmtpMailer.php(73): Nette\Mail\SmtpMailer->connect()
...
#7 {main}
romiix.org
Člen | 343
+
0
-

Maily by si mal odosielať v try catch bloku, inak sa ti v prípade výpadku SMTP servera budú vyhadzovať výnimky.

try {
	// ...
	$mailer->send($mail);
} catch(Nette\Mail\SmtpException) {
	$this->flashMessage("Odoslanie e-mailu zlyhalo.", "warning");
}

Ak si dostal SmtpException, vyzerá to tak, že si použil nesprávne prihlasovacie údaje k serveru.