Odesílání emailů. Žádný nedorazí

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

Ahoj všem. Snažím se po registraci uživatele odeslat email s aktivačním odkazem. Což vypadá takto:

<?php
use Nette\Mail\Message;
use Nette\Mail\SendmailMailer;
$mail = new Message;
$mailer = new SendmailMailer;

$mail->setFrom('fyaskostyler@ninecreative.cz')
	->addTo('fyaskostyler@seznam.cz')
	->setSubject('Aktivace účtu')
	->setBody("Dobrý den,\nprávě jste se zaregistroval/a na stránce URL.\nPro aktivaci vašeho účtu použijte následující odkaz:\nhttp://url/activate/".$token);
$mailer->send($mail);
?>

Na starších verzích nette mi to šlo bez problémů jako na localhostu tak online. Na 2.3.7 jaksi nechce dorazit žádný email. Mohl by někdo poradit proč popř. jestli existuje nějaký debug?

Matey
Člen | 142
+
+1
-

Ahoj. Použi IMailer a vytiahni si ho z DI. Tym dostaneš mailer nakonfigurovaný z neonu

<?php
use Nette\Mail\Message;
use Nette\Mail\IMailer;

/** @var IMailer @inject */
public $mailer;

/*alebo*/

private $mailer;

public function __construct(IMailer $mailer)
{
	$this->mailer = $mailer
}

/* + použitie */

$mail = new Message;
$mail->...;

try {
	$this->mailer->send($mail);
} catch (SendException $e) {
	Debugger::log($e, 'mailexception');
}
?>

Editoval Matey (22. 11. 2015 10:14)

Fyasko
Člen | 106
+
0
-

Udělal jsem to podle tvé rady, ale emaily stále nechodí :/

kejlicz
Člen | 201
+
0
-

Zkoušel jsi posílat i na jiný server než seznam? Měl třeba seznam už asi týden zahazuje dost emailů. Máš dobře nastavené DKIM?

Editoval kejlicz (23. 11. 2015 10:19)

HonzaN
Člen | 66
+
0
-

Ahoj,

zkus to posílat z nějakého existujícího SMTP serveru (třeba Gmail nebo SMTP webhostera). Jinak si musíš na localhostu nějaký SMTP relay nastavit. Tuším že XAMPP umí fiktivně doručovat uložením emailu do souboru na disku.

Editoval HonzaN (23. 11. 2015 10:25)

Fyasko
Člen | 106
+
0
-

Zkoušel jsem na seznam,gmail a na moje domény u wedosu a nic.

to kejlicz: nezlob se, ale netuším co je DKIM.

to HonzaN: Dříve nebyla potřeba řešit smtp ne? Když už to budu dělat tak přímo od providera no.

David Grudl
Nette Core | 8239
+
0
-

Nejprve zkus vyloučit (což bude pravděpodobnější) nebo potvrdit souvislost s verzí Nette. Pak se bude problém hledat snáz.

Fyasko
Člen | 106
+
0
-

Omlouvám se. Nejsem sice nejblbější a slova které píšete znám, ale když je si je poskládám do věty, nevím jak na ní reagovat :D . Co přesněji by měla být má odpověď?

chemix
Nette Core | 1310
+
0
-

@Fyasko bylo by dobre zjistit kde je chyba. Treba kdyz si na stejnem serveru zkusis poslat email pomoci funkce mail() zdali dorazi, pokud nedorazi chyba neni v nette, ale nekde hloubeji.

Pokud dorazi, zkusil bych pouzit jiny „debugovaci“ mailer. Treba ja pouzivam "jandrabek/nette-mailpanel": "~3.2" (pozor vyzaduje "nette/deprecated": "~2.3",). V tracy by se pak mel zobrazit email ze se ho snazilo nette poslat klasickou cestou.

Pokud se nezobrazi je chyba nekde v aplikaci. Pokud se zobrazi je chyba nekde v senderu. Otazkou pak bude kde…

Co pouzivas za hosting, nedelali zmeny? neni jejich IP adresa na black listu apd apd…

kejlicz
Člen | 201
+
0
-

Pokud to máš na localu, tak si nainstaluj tuhle utilitku https://smtp4dev.codeplex.com/ . To simuluje SMTP server. Podle toho uvidíš, jestli ten email odejde z PHP.

Fyasko
Člen | 106
+
0
-

Delší dobu jsem tu nebyl. Mrknu na maily a všechny zaspamované tím, na co jsem čekal a tvrdil že nechodí. Takže jinak. Maily chodí, ale se spožděním které mají, jsou nepoužitelné :/

kejlicz
Člen | 201
+
0
-

S tím ale nemá snad Nette nic společného. To už je věc hostingu / serveru, ne?

chemix
Nette Core | 1310
+
0
-

@kejlicz @Fyasko jj, tohle pomoci Nette nijak nevyresis. ten to posle bud skrze smtp server nebo skrze interni mail funkci dal do systemu a dej se vule roota :)

Fyasko
Člen | 106
+
0
-

Tak jasně že nevyřeším. Založil jsem toto vlákno protože první maily přišlo min. po dvou dnech. Tudíž jsem byl mírně zaražen. A to hlavně proto, že když pošlu mail z jednoho projektu, tak je hned tam kde má být. Z druhého ne. A to je matoucí :D