如何使用Zend_Mail,sendmail和localhost发送电子邮件?

时间:2009-10-27 22:51:49

标签: php zend-framework ubuntu sendmail zend-mail

我正在开发一个包含简单电子邮件功能的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服务器。 This tutorial made it really easy for me to get an SMTP server up an running。现在上面的两个代码示例都可以工作。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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