2009-10-27 12 views
8

Zajmuję się tworzeniem aplikacji ramowej zend, która zawiera prostą funkcję e-mail. Wersja rozwojowa działa na moim komputerze, na którym działa Ubuntu. Wersja produkcyjna będzie działać na serwerze produkcyjnym.Jak wysłać wiadomość e-mail za pomocą Zend_Mail, sendmail i localhost?

Podczas próby wysłania e-maila testowego otrzymuję wyjątek z komunikatem "Nie można wysłać poczty". Nie wiem, czy jest to problem środowiskowy, czy problem z kodem. Nie używam transportu, więc domyślam się, że domyślnie jest to Zend_Mail_Transport_Sendmail. Oto mój kod:

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

Aktualizacja: Próbowałem innego podejścia poprzez ustawienie transportu SMTP użyć localhost:

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

Mam inny błąd ten czas: „Connection refused” Nie wiem co to znaczy. Może jeszcze czegoś nie ustawiłem?

Aktualizacja: Domyślam się, że nie zainstalowałem/zainstalowałem serwera SMTP. This tutorial made it really easy for me to get an SMTP server up an running. Teraz oba powyższe przykłady kodu działają.

+0

Czy Twoje dzienniki SMTP pokazują cokolwiek? –

+0

Gdzie mogę znaleźć te? – Andrew

+0

W systemie Ubuntu, sprawdź/var/logs/ –

Odpowiedz

2

Wygląda na to, że musisz skonfigurować MTA, lub znaleźć taki, do którego możesz wysłać. Pulpit Ubuntu powinien domyślnie go ustawić, prawdopodobnie exim lub postfix, ale jeśli go nie skonfigurowałeś, prawdopodobnie nie będzie działał.

2

Nie chcesz ustawić domyślnego transportu, jeśli chcesz używać sendmaila (jest to ustawienie domyślne), a SMTP jest inny.

To, że nie wysyła e-maili sugeruje, że sendmail lub MTA na twoim serwerze nie jest zainstalowany/nie jest poprawnie skonfigurowany.

Powiązane problemy