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
我被困在这里......
请帮帮我......
提前致谢
答案 0 :(得分:1)
在我看来,这里发生了两件事:
send()
方法抛出异常。由于您未指定$transport
对象,因此它尝试使用标准sendmail作为默认值。看起来你正在使用Windows。你有sendmail安装吗?在我的本地Windows开发环境中发送时,我也会遇到异常。也许用基于smtp的传输进行测试?
抛出的异常是触发错误处理程序,因此它正在寻找ErrorController::errorAction()
。您看到的消息是遗失或错误放置的结果ErrorController
。
大声思考。
答案 1 :(得分:0)
首先,请更新到最新的ZF稳定分支。
作为quickfix,您应该尝试用以下代码替换代码:
$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版本,方法链可能是此处的问题。
答案 2 :(得分: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();
答案 3 :(得分:0)
您必须为应用程序设置默认传输。在编写代码的地方,在类的构造函数中,您必须使用它。
function __construct() {
$tr = new Zend_Mail_Transport_Smtp(<your smtp IP address>);
Zend_Mail::setDefaultTransport($tr);
}
注意:除上述代码外,请检查apache服务器的php.ini文件以获取以下设置。以下选项应取消注释。
extension=php_openssl.dll