Nette\Mail\SmtpException při odeslání mailu přes SMTP, bez kódu chyby

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

Zdravím,

nejspíš to nebude primárně problém Nette, ale třeba se s tím někdo už setkal.

Nedaří se mi poslat mail přes smtp.gmail.com. Zkouším různě (ze zoufalosti) prohazovat porty a Google smtp servery, ale pořád bez výsledku.

<?php

namespace App\Presenters;

use Nette;
use Nette\Application\UI\Form;
use Nette\Mail\Message;
use Nette\Mail\SmtpMailer;

class HomepagePresenter extends BasePresenter
{

//Po kliknuti na send tlaciko zavolam funkci requestFormSucceeded

public function requestFormSucceeded($form, $values)
    {
        $this->sendMail($form->getValues());
    }

 public function sendMail($values)
    {
        $mail = new Message();
        $mail->setFrom('admin@domena.cz')
            ->addTo('sem@posilam.cz')
            ->setSubject('Nový zaměstnanec');

        $template = $this->createTemplate();
        $template->setFile(__DIR__ . '/templates/Mail.latte');

        $template->name = $values['name']; // data ziskana z formulare a predane do $values

        $mail->setHtmlBody($template);

        $mailer = new SmtpMailer([
            'host' => 'smtp.gmail.com',
            'port' => '465',
            'username' => 'admin@domena.cz',
            'password' => '****',
            'secure' => 'ssl',
        ]);
        $mailer->send($mail);
    }
}
?>

V config.neon mám:

mail:
smtp: true
secure: ssl

Laděnka pouze napíše pouze: Nette\Mail\SmtpException

Poradil byste někdo, jak mít správně nastavený mail? V php.ini nemám nastavený žádný smtp server ani odchozí mail. V Gmailu mám povolený přístup pro méně bezpečné aplikace.

Díky za rady

Ondřej Kubíček
Člen | 494
+
0
-

a máš tam v username nějakou schránku na gmail.com jo?

co ta smtpexception vyhodí za message ?

egin_28
Člen | 10
+
0
-

Jo, je to gmail schránka. Ta exception právě nehodí žádnou hlášku, jen odkaz na:
\vendor\nette\mail\src\Mail\SmtpMailer.php on line 128

což je:

<?php
if (!$this->connection) {
			throw new SmtpException($error, $errno); //řádek 128
		}
?>

Z toho to vypadá, že se ani nepřipojí k tomu mailu.

Editoval egin_28 (3. 5. 2018 21:21)

egin_28
Člen | 10
+
0
-

A ostatním funguje SMTP server/mail v pohodě? Nemusím to ještě nastavit v php.ini?

egin_28
Člen | 10
+
0
-

Pro někoho kdo by se trápil s podobným problémem:

https://stackoverflow.com/…-certificate

Na localhostu jsem musel dodržet všechny kroky, na serveru ale stačilo povolit moduly v php.ini a Apachi.