Chyba pri odosielani emailu cez SMTP

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

Zdravím Vás.

Mám problem s odosielanim emailov cez SMTP na servery. Skúšal som azda už všetky možnosti a rady ktoré som na fóre našiel ale bez úspešne. Môj kód vyzera nasledovne(verzia nette 2.2.0):

config.neon:

nette:
	mailer:
	    smtp: true # zapne SmtpMailer místo SendmailMailer
	    host: smtp.websupport.sk
	    username: system@domena.sk
	    port: 465
	    password: heslo
	    secure: ssl

V presenteri :

	/**
	 * @inject
	 * @var \Nette\Mail\IMailer
	 */
	public $mailer;
	.
	.
	.
	$mail = new Nette\Mail\Message;
	$mail->setFrom('Internetová objednávka <system@domena.sk>')
		->addTo($emailTo)
		->setSubject('Objednávka');
	.
	.
	$this->mailer->send($mail);

Skúšal som aj variantu z návodov:

$mailer = new Nette\Mail\SmtpMailer(array(
        'host' => 'smtp.websupport.sk',
        'username' => 'system@domena.sk',
        'password' => 'heslo',
        'secure' => 'ssl',
));

$mailer->send($mail);

Vždy mi to padne na $mailer->send($mail); a hláška z logu je:

Nette\Mail\SmtpException

SMTP server did not accept

Skúšal som aj port 25. Taktiež udaje na tu schránku som kontroloval niekoľko krát. Vyskúšal som ten SMTP na desktop klientovi a fungoval bez problémov. Už neviem čo by som skúsil. Vedel by mi niekto poradiť?

Vopred Ďakujem.

Editoval Danndy (9. 9. 2015 13:47)

Šaman
Člen | 2665
+
0
-

Když to funguje z localhostu, tak to asi nebude chyba v kódu. A i v ukázkách chybu nevidím.
Co máš za hosting? Není u toho SMPT serveru na nějakém blacklistu?

Danndy
Člen | 35
+
0
-

Hostujem na websupport.sk a aj email schránka je tam. Takže s blacklistom tiež asi chyba nebude. Fakt uz neviem kde môže byť problém.

nandrolon
Člen | 7
+
0
-

A neskusal si aj SendMailer?
u websupportu som tiez a takto mi to funguje.
Dany email ale musi existovat, cize najskor som si v ich webadmine vytvoril mailovu schranku noreply@domena.sk, a postupoval som presne podla dokumentacie a funguje to.

Danndy
Člen | 35
+
0
-

Ahoj.

SendMailer som skúšal, ale v tom prípade mi to síce nepadalo ale email mi neprišiel, ked som ho skúšal poslať na adresu inu ako od websupportu. Pravdepodobne kôli ochrane na strane servera. Preto potrebujem posielat maily cez SMTP lebo ich chcem posielať na rôzne maily na roznych hostingoch, nie len na jeden mail hostovaný na websupporte (ako napr u kontaktného formuláru). Mail použitý pre SMTP je existujúci, a aj odskúšany.

nandrolon
Člen | 7
+
0
-

Zaujimave lebo mne normalne SendMailer ide a funguje aj mimo websupportu.
V podstate som skusal len …@gmail.com a fungovalo to bez problemov.
dnes vecer ak najdem cas mozme skusit aj ja SMTP to bude na par minut napisem vysledok ci mi to preslo.

Danndy
Člen | 35
+
0
-

To by bolo super. Ak by si mohol, poslat by si mi aj kod ako maš použitý ten SendMailer?

Dakujem

nandrolon
Člen | 7
+
0
-

to ti viem este teraz dat, takto jednoducho som to skratil na pochopitelne minimum.
ako zaciatocnik som postupoval len podla dokumentacie

$template = new \Nette\Templating\FileTemplate('app/templates/email/email.latte');
$template->registerFilter(new \Nette\Latte\Engine);
$template->registerHelperLoader('\Nette\Templating\Helpers::loader');

$mail = new Message;
$mail->setFrom('noreply@domena.sk')
	->addTo($userData['email'])
	->setHtmlBody($template);
$mailer = new SendmailMailer;
$mailer->send($mail);
nandrolon
Člen | 7
+
0
-

tak som to skusil aj cez SMTP

do config.neon som dal copy&paste od teba ( ale moje udaje )
a mail mi prisiel, skusil som dat aj zle heslo a bolo z toho

Nette\Mail\SmtpException
SMTP server did not accept password

a do presentera som dal takto.

$mail = new Nette\Mail\Message;
$mail->setFrom('noreply@domena.sk')
    ->addTo('___@gmail.com')
    ->setSubject('Objednávka');
$this->mailer->send($mail);

aj setFrom som skusal dat v tvare Internetová objednávka <noreply@domena.sk>

aj tak mi to doslo.
podla mna skus napisat na podporu vo websupporte nech to preveria.