2009-10-27 9 views
8

Sto sviluppando un'applicazione di zend framework che include una semplice funzione di posta elettronica. La versione di sviluppo è in esecuzione sul mio computer, che esegue Ubuntu. La versione di produzione verrà eseguita su un server di produzione.Come inviare un'e-mail usando Zend_Mail, sendmail e localhost?

Quando si tenta di inviare una e-mail di prova a me stesso, ottengo un'eccezione con il messaggio: "Impossibile inviare la posta". Non so se si tratta di un problema di ambiente o di un problema di codice. Non sto utilizzando un trasporto quindi penso che sia impostato per default su Zend_Mail_Transport_Sendmail. Qui è il mio codice:

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(); 
} 

Aggiornamento: Ho provato un approccio diverso impostando il trasporto SMTP per utilizzare localhost:

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

ho ottenuto un errore di diverso questa volta: "Connection refused" Non è sicuro cosa significa. Forse non ho ancora impostato qualcosa?

Aggiornamento: Immagino di non aver installato/installato un server SMTP. This tutorial made it really easy for me to get an SMTP server up an running. Adesso entrambi gli esempi di codice sopra funzionano.

+0

I tuoi registri smtp mostrano qualcosa? –

+0

Dove trovo quelli? – Andrew

+0

Su Ubuntu, controlla/var/logs/ –

risposta

2

Sembra che sia necessario configurare un MTA o trovarne uno che è possibile inviare a. Il desktop di Ubuntu dovrebbe impostarne uno per impostazione predefinita, probabilmente exim o postfix, ma se non lo hai configurato, è improbabile che sia in esecuzione.

2

Non si desidera impostare il trasporto predefinito se si desidera utilizzare sendmail (è l'impostazione predefinita) e SMTP è diverso.

Che non invii le e-mail suggerisce che sendmail o il MTA sul server non sia installato/non configurato correttamente.