Php 尝试在Zend Framework 2中发送电子邮件时出现致命错误

Php 尝试在Zend Framework 2中发送电子邮件时出现致命错误,php,zend-framework2,Php,Zend Framework2,尝试在ZF2中发送电子邮件时,我遇到以下致命错误: 致命错误:在第262行的/var/www/Zend/ZendFramework-minimal-2.0.6/library/Zend/Mail/Protocol/AbstractProtocol.php中找不到类“Zend\Mail\Protocol\Exception\RuntimeException” 触发此操作的代码是: $email = new \Zend\Mail\Message(); $email->setBody('This

尝试在ZF2中发送电子邮件时,我遇到以下致命错误: 致命错误:在第262行的/var/www/Zend/ZendFramework-minimal-2.0.6/library/Zend/Mail/Protocol/AbstractProtocol.php中找不到类“Zend\Mail\Protocol\Exception\RuntimeException”

触发此操作的代码是:

$email = new \Zend\Mail\Message();
$email->setBody('This is a test body.');
$email->setFrom('sender@example.com', 'Sender Name');
$email->addTo('recipient@example.com', 'Recipient Name');
$email->setSubject('Test Subject');

$this->getServiceLocator()->get('Zend\Mail\Transport')->send( $email );

die("I am here");
其中
$this->getServiceLocator()->get('Zend\Mail\Transport')
返回Zend\Mail\Transport\Smtp的实例

然而,这个问题似乎很奇怪,因为:

  • 尽管有错误,电子邮件实际上始终被发送
  • 直到脚本完成后,才会触发错误。在上面的示例中,脚本输出“我在这里”,然后输出致命错误
  • 这似乎与上面代码块出现的位置有关。例如,当块出现在某些控制器中而不是其他控制器中时,会触发错误,尽管控制器之间的唯一区别是它们的名称

如果有人能告诉我为什么会发生这种情况,我将不胜感激。

对我来说似乎是个bug。您是否检查过是否有文件“Zend/Mail/Protocol/Exception/RuntimeException.php”@Niko-是的,Zend/Mail/Protocol/Exception/RuntimeException.php文件在那里。您是否正确设置了自动加载?@MatteoTassinari我正在使用骨架应用程序;因此,其他一切似乎都运转良好。只是这一个动作返回了一个错误。