2
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception'
with message 'Invalid controller specified (error)'  
in C:\xampp\htdocs\zend\library\Zend\Controller\Dispatcher\Standard.php:248 Stack trace:  
 #0 C:\xampp\htdocs\zend\library\Zend\Controller\Front.php(954):
    Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
 #1 C:\xampp\htdocs\zend\library\Zend\Application\Bootstrap\Bootstrap.php(97):
    Zend_Controller_Front->dispatch()
 #2 C:\xampp\htdocs\zend\library\Zend\Application.php(366): 
    Zend_Application_Bootstrap_Bootstrap->run()
 #3 C:\xampp\htdocs\intern\lc.intern\public\index.php(26):
    Zend_Application->run()
 #4 {main} Next exception 'Zend_Controller_Exception'
 with message 'Invalid controller specified (error)'
   #0 C:\xampp\htdocs\zend\library\Zend\Controller\Front.php(954):
    Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
   #1 C:\xampp\htdocs\zend\library\Zend\Application\B
     in C:\xampp\htdocs\zend\library\Zend\Controller\Plugin\Broker.php on line 336

メールを送信するための私のコードは次のとおりです。

$mail = new Zend_Mail();
$mail->addTo('myemail@gmail.com', 'my name')
         ->setFrom('myemanil@gmail.com', 'my name')
         ->setSubject('My Subject')
         ->setBodyText('Email Body')
         ->send();

最後の行、つまりsend()を削除すると正常に機能しますが、メールを送信するにはsend()が必要です:-P

私はここで立ち往生しています...

私を助けてください ...

前もって感謝します

4

4 に答える 4

1

私には、ここで2つのことが起こっているように見えます。

  1. メソッドはsend()例外をスローしています。オブジェクトを指定していないため$transport、デフォルトとして標準のsendmailを使用しようとしています。Windowsを使用しているようです。sendmailをインストールしていますか?私も、ローカルのWindows開発環境で送信すると例外が発生します。たぶん、SMTPベースのトランスポートでテストしますか?

  2. スローされた例外はエラーハンドラーをトリガーしているため、を探していErrorController::errorAction()ます。表示されるメッセージは、の欠落または誤った配置の結果ですErrorController

大声で考えているだけです。

于 2011-12-14T17:28:35.053 に答える
0

まず、最新のZF安定版ブランチに更新してください。

クイックフィックスとして、コードを次のように置き換えてみてください。

$mail = new Zend_Mail();
$mail->addTo('myemail@gmail.com', 'my name')
         ->setFrom('myemanil@gmail.com', 'my name')
         ->setSubject('My Subject')
         ->setBodyText('Email Body');
$mail->send(); 

使用しているZFのバージョンによっては、ここでメソッドチェーンが問題になる可能性があります。

于 2011-12-14T14:24:27.703 に答える
0

私のプロジェクトからこの例のように試してください

  $options = array(
        'auth'     => 'login',
        'username' => 'username@gmail.com',
        'password' => 'password',
        'ssl'      => 'tls',
        'port' => 587
    );
    $mailTransport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $options);
    Zend_Mail::setDefaultTransport($mailTransport);

$m = new Zend_Mail('UTF-8');
$m->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);

    $m->addTo("username@gmail.com");
    $m->setFrom('username2b@gmail.com', 'username');
    $m->setSubject('usertext');
    $errortext = "report";
    $m->setBodyHtml($errortext, 'UTF-8', Zend_Mime::ENCODING_BASE64);
    $m->send();
于 2011-12-14T20:11:21.463 に答える
0

アプリケーションのデフォルトのトランスポートを設定する必要があります。コードを記述している場合、クラスのコンストラクターでこれを使用する必要があります。

function __construct() {
    $tr = new Zend_Mail_Transport_Smtp(<your smtp IP address>);
    Zend_Mail::setDefaultTransport($tr);
}

注:上記のコードに加えて、Apacheサーバーのphp.iniファイルで次の設定を確認してください。以下のオプションはコメントを外す必要があります。

extension=php_openssl.dll
于 2013-08-10T17:28:22.487 に答える