2009-10-27 25 views
8

Estoy desarrollando una aplicación zend framework que incluye una sencilla función de correo electrónico. La versión de desarrollo se está ejecutando en mi computadora, que ejecuta Ubuntu. La versión de producción se ejecutará en un servidor de producción.¿Cómo enviar un correo electrónico usando Zend_Mail, sendmail y localhost?

Al intentar enviarme un correo electrónico de prueba, aparece una excepción con el mensaje: "No se puede enviar el correo". No sé si esto es un problema ambiental o un problema de código. No estoy usando un transporte, así que creo que está por defecto en Zend_Mail_Transport_Sendmail. Aquí está mi código:

public function sendtestAction() 
{ 
    $mail = new Zend_Mail(); 
    $mail->setFrom('[email protected]', 'Test Email'); 
    $mail->addTo('[email protected]', 'My Name'); 
    $mail->setSubject('This is just a test.'); 
    $mail->setBodyText('This is only a test.'); 
    $mail->send(); 
} 

Actualización: He intentado un enfoque diferente estableciendo el transporte SMTP para utilizar localhost:

transport = new Zend_Mail_Transport_Smtp('localhost'); 
Zend_Mail::setDefaultTransport($transport); 

me ha dado un error diferente esta vez: "Conexión rechazada" No estoy seguro lo que eso significa ¿Tal vez todavía no he configurado algo?

Actualización: Supongo que no tenía un servidor SMTP instalado/configurado. This tutorial made it really easy for me to get an SMTP server up an running. Ahora funcionan los dos ejemplos de código anteriores.

+0

¿Sus registros smtp muestran algo? –

+0

¿Dónde puedo encontrarlos? – Andrew

+0

En Ubuntu, compruebe/var/logs/ –

Respuesta

2

Parece que necesita configurar un MTA o encontrar uno al que pueda enviarlo. El escritorio de Ubuntu debe configurar uno por defecto, probablemente sea exim o postfix, pero si no lo has configurado, es poco probable que se esté ejecutando.

2

No desea establecer el transporte predeterminado si desea usar sendmail (es el valor predeterminado) y SMTP es diferente.

El hecho de que no envíe los correos electrónicos sugiere que sendmail o el MTA en su servidor no está instalado/no configurado correctamente.

Cuestiones relacionadas