1

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

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

这是代码:

公共函数 sendMail($user, $gain=null) { 全局 $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模块?对不起,如果这对你来说很明显,我已经很长时间没有研究这个了......

4

1 回答 1

0

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

远程登录本地主机 25

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

C:\Users\username>telnet localhost 25 Connecting To localhost...Could not open connection to the host, on port 25: Connect failed

那是你的问题。

要解决它,您需要安装和配置邮件服务器。我过去使用过 hmailserver (www.hmailserver.com),它运行良好。

于 2013-04-25T15:13:10.527 回答