2009-10-27 83 views
8

我正在開發一個包含簡單電子郵件功能的zend框架應用程序。開發版本在運行Ubuntu的計算機上運行。生產版本將在生產服務器上運行。如何使用Zend_Mail,sendmail和localhost發送電子郵件?

當試圖向我發送測試郵件時,我收到一條異常消息:「無法發送郵件」。我不知道這是一個環境問題還是代碼問題。我沒有使用交通工具,所以我認爲它是默認爲Zend_Mail_Transport_Sendmail。這裏是我的代碼:

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

更新:我嘗試了不同的方法,通過設置SMTP傳輸到使用localhost:「連接被拒絕」不知道:

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

我這個時候有一個不同的錯誤那意味着什麼。也許我還沒有設置一些東西呢?

更新:我想我沒有安裝/設置SMTP服務器。 This tutorial made it really easy for me to get an SMTP server up an running。現在上面的兩個代碼示例都工作。

+0

你的smtp日誌顯示任何東西? – 2009-10-27 23:05:02

+0

我在哪裏可以找到那些? – Andrew 2009-10-27 23:05:34

+0

在Ubuntu上,選中/ var/logs/ – 2009-10-27 23:07:15

回答

2

聽起來你需要配置一個MTA,或者找到一個可以發送到的MTA。 Ubuntu桌面應該默認設置一個,可能是exim或postfix,但是如果你沒有配置它,它將不可能運行。

2

如果您希望使用sendmail(這是默認設置)並且SMTP不同,您不想設置默認傳輸。

它不發送電子郵件表明sendmail或服務器上的MTA未安裝/未正確設置。

相關問題