Nette\Mail\Message neodesílá e-mail
- zimmi
- Člen | 94
Zdravím,
běžím na Apache + PHP 5.3.10 + Nette 2.0.6 na Mintu, k posílání mailů
mám nainstalovaný Postfix.
try {
$mail = new Message;
$mail->addTo($email)
->setSubject('Potvrzení registrace')
->setBody('ahoj')
->send();
} catch (Exception $e) {
print "neodesláno";
print $e->getMessage();
}
if (mail($email, "Zpráva", "Zpráva")) {
echo "Odesláno.";
} else {
echo "Neodesláno";
}
K odeslání mailu používám Message, která e-mail neodešle, ale ani nevyhodí exception. Normální mail() to zvládne bez problémů a e-mail je odeslán. Nemohl by mě někdo nasměrovat, kde by mohl být zakopaný pes?
PS: Celé to běží na localhostu.
Editoval zimmi (27. 11. 2012 12:54)
- jetpack
- Člen | 71
A jak to jako posílá?
Mail\Message má $defaultMailer : Mail\SendmailMailer a to je defaultní mail()
funkce.
Co se týká Exception tak to vyhazuje jedině: Nette\Mail\SmtpException
Takže ať zkontroluje LOG na serveru zda-li mu to tam píše nějaké blbosti. Protože pokud funguje mail() tak musí fungovat Mail\Message .
Jo a zkus tam přidat:
->setFrom(‚Franta <franta@example.com>‘)
Editoval jetpack (8. 1. 2013 12:40)
- MartinitCZ
- Člen | 580
V konzoli si pust (debian):
sudo apt-get install postfix postfix-tls libsasl2-2 sasl2-bin libsasl2-modules popa3d
A máš po starostech. Na jednoduché odesílání to stačí.
- MartinitCZ
- Člen | 580
@**jetpack**: Řekl bych, že mu nějaká knihovna chybí. Osobně jsem spustil jen tento příkaz a odesílání funguje.
Editoval martinit (8. 1. 2013 17:15)
- zimmi
- Člen | 94
Bohužel problém pořád trvá, ale už není asi na mojí straně. Mám k Postfixu nainstalovaný msmtp, ale co jsem to testoval, tak jediná adresa, kam e-mail protlačím, je na GMailu, například na Centrum se e-mail neodešle, ačkoliv výsledek funkce pro odeslání je true.
Neřešil jste to někdy někdo?