1

現在、「古い」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 モジュールはありますか? それがあなたにとって明らかである場合は申し訳ありませんが、私はこれに長い間取り組んでいません...

4

1 に答える 1

0

作業中のマシンでローカルに SMTP サービスを実行していることを確認してください。これは、ポート 25 で telnet を使用して localhost に接続することで確認できます。

telnet ローカルホスト 25

タイムアウトした場合は、SMTP サーバーがインストールされていないか実行されていない可能性があります。

C:\Users\username>telnet localhost 25 Connecting To localhost...ホストへの接続をポート 25 で開くことができませんでした: 接続に失敗しました

それがあなたの問題です。

これを解決するには、メールサーバーをインストールして構成する必要があります。過去に hmailserver (www.hmailserver.com) を使用したことがありますが、問題なく動作しました。

于 2013-04-25T15:13:10.527 に答える