SMTP mailer se nechce připojit

Rndoom04
Člen | 72
+
0
-

Ahoj všem. :)

Řeším takovou maličkost a tou je SMTP mailer. Nechce se připojit a vůbec netuším proč. Poradí mi někdo, kde může být chybička? :)

Mám

$mailer = $this->createSMTPsession();
dump($mailer);

a v basePresenteru

use Nette\Mail\SmtpMailer;

public function createSMTPsession()
{
	return new SmtpMailer([
    	'host' => 'email.domena.cz',
    	'username' => 'admin@jinadomena.cz',
    	'password' => 'secret-passwd',
    	'secure' => 'ssl',
 	]);
}

A hází mi to:

Nette\Mail\SmtpMailer #505f
connection private => null
host private => "email.domena.cz" (24)
port private => 465
username private => "admin@jinadomena.cz" (23)
password private => "secret-passwd" (13)
secure private => "ssl" (3)
timeout private => 20
context private => stream-context resource #6
persistent private => false
clientHost private => "sub.domenaNaKtereMamProjekt.eu" (25)

Tedy. Když stejné hodnoty zadám do outlooku, thunderbirdu, android gmail appce, připojí se vše správně. Příchozí server i odchozí mám ‚email.domena.cz‘. Porty 465 a 993 jsou otevřené a funkční. Certifikát funkční taktéž. Netuším, kde co můžu mít špatně. :/ Děkuji všem za pomoc. :) Hezký den.

Editoval Rndoom04 (21. 7. 2019 17:41)

Mysteria
Člen | 797
+
0
-

Z čeho usuzuješ, že se nejde připojit? Vytvořením instance SMTP maileru se ještě nepřipojuješ na server, to se děje až při prvním pokusu o odeslání emailu. Takže jestli narážíš na to connection private => null tak to je v pořádku.

Jinak vytvářet instance takhle ručně není nejlepší řešení, lepší je použít přímo config.neon: https://doc.nette.org/cs/configuring#…

Rndoom04
Člen | 72
+
0
-

Mysteria napsal(a):

Z čeho usuzuješ, že se nejde připojit? Vytvořením instance SMTP maileru se ještě nepřipojuješ na server, to se děje až při prvním pokusu o odeslání emailu. Takže jestli narážíš na to connection private => null tak to je v pořádku.

Jinak vytvářet instance takhle ručně není nejlepší řešení, lepší je použít přímo config.neon: https://doc.nette.org/cs/configuring#…

V tom případě mi to při pokusu o odeslání hlásí:

Nette\Mail\SmtpException
stream_socket_client(): unable to connect to ssl://email.domena.cz:465 (Unknown error)
Mysteria
Člen | 797
+
0
-

V tom případě je špatná konfigurace, první co mě vyhodí Google na danou hlášku je změnit secure z SSL na TLS.

Rndoom04
Člen | 72
+
0
-

Soudil jsem dle řádku „connection private ⇒ null“. Můžeš mi prosím osvětlit, proč je tam stále null? :) Rád mám ve věcech pořádek. :) Čekal bych, že mi to vrátí i s řádkem connection. Jestli jsem připojený nebo ne.

Ale už odesílání mailu jde.. Přes „ssl“ a ne „tls“. Chyba byla v nastavení postfixu. Zajímavé, že to všechny programy ignorovali. Roundcube, gmail app, outlook, thunderbird, … ale Nette s tím mělo problém. :)

Mysteria
Člen | 797
+
0
-

Protože se connection nastavuješ zavoláním metody connect a ta se volá v metodě send. Když se podíváš do konstrukturu, tak tam vidíš, že se tam s connection nic nedělá.

A proč? Protože kdyby to bylo v konstruktoru, tak se připojíš na SMTP vždy, i když to není potřeba. Takhle se to připojí jenom tehdy, když opravdu chceš poslat nějaký email.

Editoval Mysteria (22. 7. 2019 9:54)

Rndoom04
Člen | 72
+
0
-

Super, děkuji moc za vysvětlení. :)