SMTP mailer se nechce připojit
- Rndoom04
- Člen | 75
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
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 | 75
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)
- Rndoom04
- Člen | 75
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
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)