使用Zend Framework发送邮件:"无法建立连接"

时间:2013-04-25 15:09:44

标签: php zend-framework smtp sendmail

我正在开发一个“旧的”php / zend项目。我在本地安装了它,一切都很好,除了用户完成表单后应用程序发送确认邮件的部分。

我所犯的错误基本上是“连接无法建立”

这是代码:

public function sendMail($ user,$ gain = null) {     global $ config;

$this->_view->url   = $config->app->url;

$tr = new Zend_Mail_Transport_Smtp($config->app->mail->server);
Zend_Mail::setDefaultTransport($tr);

$mail = new MGMail($config->app->mail->key, true);
$mail->setFrom($config->app->mail->from, $config->app->mail->fromName);

if ($gain == null)
{
    $object = $config->app->mail->object->inscription;
    $render = $this->_view->render('inscription.phtml');
}
else
{
    switch ($gain)
    {
        case 'peignoir':
            $gain_name = 'un '.$gain;
        case 'casquette':
            $gain_name = 'une '.$gain;
    }

    $object = sprintf($config->app->mail->object->gain, $gain_name);
    $render = $this->_view->render($gain.'.phtml');
}

$mail->setSubject($object);
$mail->addTo($user->email, $user->first_name.' '.$user->last_name);
$mail->setBodyText($render);

$mail->send();

$this->saveSendEmail($object, $render, $user);

}

$config->app->mail->server

在我的application.ini中只包含“localhost”

我需要做些什么来解决这个问题? 有没有激活的php模块?  对不起,如果这对你来说很明显,我很长时间没有这方面的工作......

1 个答案:

答案 0 :(得分:0)

确保您在正在使用的计算机上本地运行SMTP服务。您可以通过在端口25上使用telnet到localhost来检查这一点:

  

telnet localhost 25

如果超时,则可能是您没有安装或运行SMTP服务器:

  

C:\ Users \ username> telnet localhost 25   连接到localhost ...无法打开与主机的连接,在端口25上:连接失败

这是你的问题。

要解决此问题,您需要安装和配置邮件服务器。我过去使用过hmailserver(www.hmailserver.com)并且运行正常。