8

我正在开发一个包含简单电子邮件功能的 zend 框架应用程序。开发版在我的电脑上运行,它运行的是 Ubuntu。生产版本将在生产服务器上运行。

尝试向自己发送测试电子邮件时,我收到一条异常消息:“无法发送邮件”。我不知道这是环境问题还是代码问题。我没有使用传输,所以我认为它默认为Zend_Mail_Transport_Sendmail. 这是我的代码:

public function sendtestAction()
{
    $mail = new Zend_Mail();
    $mail->setFrom('test@aol.com', 'Test Email');
    $mail->addTo('my@email.com', '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 服务器。本教程使我很容易让 SMTP 服务器运行起来。现在上面的两个代码示例都可以工作。

4

2 回答 2

2

如果您希望使用 sendmail(它是默认值)并且 SMTP 不同,则您不想设置默认传输。

它不发送电子邮件表明您的服务器上的 sendmail 或 MTA 未安装/未正确设置。

于 2009-10-28T00:01:25.533 回答
2

听起来您需要配置一个 MTA,或者找到一个可以发送到的 MTA。Ubuntu 桌面应该默认设置一个,可能是 exim 或 postfix,但如果你没有配置它,它不太可能运行。

于 2009-10-28T00:02:47.140 回答