SMTP mail z localhostu vrací *Connection refused*, na serveru funguje

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

Hezký den,
používám Nette Verze 2.0 Alpha 2 se jmennými prostory, a snažím se poslat pomocí \Nette\Mail\Mail třídy email s tím že na localhostu nemám nainstalovaný sendmail a tak jsem chtěl využít SMTP.

Odesílání dělám za pomocí:

$mail = new \Nette\Mail\Mail;
$mail->setFrom('petr.masat.cz@gmail.com');
$mail->addTo($email);
$mail->setBody('Pokusny text');
$mailer = new \Nette\Mail\SmtpMailer();
$mail->setMailer($mailer);
$mail->send();

a v config.ini mám toto nastavení:

[common.mailer]
host = "smtp.gmail.com"
port = 465
username = "petr.masat.cz@gmail.com"
password = "****"
timeout = 30
transport = "ssl"

a zatímco na serveru (vas-hosting.cz) mě vše funguje bez problémů tak na localhost mi to stále vrací chybu
Nette\Mail\SmtpException #111
Connection refused
na řádku s $mail->send();

Říkal jsem si zda není problém na cestě k gmailu, tak jsem zkusil dát jako SMTP upc, přes něhož jsem připojen k internetu, config.ini pak vypadal:

[common.mailer]
host = "smtp.upcmail.cz"
timeout = 30

ale ani to nepomohlo. Nevím tedy jestli se musí vyplnit nějaké údaje k username a password, když upc umožňuje anonymní přístup.

Máte prosím někdo nějaký nápad jak to řešit?
Díky moc.

Milo
Nette Core | 1283
+
0
-

SmtpMaileru musíš předat nastavení z configu. Jinak vezme parametry z php.ini

Editoval Milo (12. 2. 2011 21:56)

Petr Mašát
Člen | 101
+
0
-

Díky moc, upravil jsem odesílání na:

$conf = Nette\Environment::getConfig('mailer');

$mail = new \Nette\Mail\Mail;
$mail->setFrom('info@aikidohostivar.cz');
$mail->addTo($email);
$mail->setHtmlBody($template); // nebo $mail->setBody($template) pro textovou šablonu
$mailer = new \Nette\Mail\SmtpMailer(
		array(
			'host' => $conf->host,
			'port' => $conf->port,
			'username' => $conf->username,
			'password' => $conf->password,
			'timeout' => $conf->timeout,
			'transport' => $conf->transport,
		)
	);
$mail->setMailer($mailer);
$mail->send();

a vše již funguje.
Ještě jednou děkuji.

neznalek
Člen | 60
+
0
-

Jen bych chtel rict ze muzes pole pouzit primo z configu, ale musel jsem to pretipovat:

<?php
$mail = new \Nette\Mail\Mail;
$mail->setFrom(...);
$mail->addTo(...);
$mail->setHtmlBody(...); // nebo $mail->setBody($template) pro textovou šablonu
$mailer = new \Nette\Mail\SmtpMailer((array) \Nette\Environment::getConfig('mailer'));
$mail->setMailer($mailer);
$mail->send();
?>

Neda se nastavit smtp server, nejak globalne trebas v bootstap?