ZF2 で電子メールを送信しようとすると、次の致命的なエラーが発生します: Fatal error: Class 'Zend\Mail\Protocol\Exception\RuntimeException' not found in /var/www/zend/ZendFramework-minimal-2.0.6/ library/Zend/Mail/Protocol/AbstractProtocol.php の 262 行目
これをトリガーするコードは次のとおりです。
$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 のインスタンスを返します。
ただし、次の理由により、この問題は非常に奇妙に思えます。
- エラーにもかかわらず、電子メールは実際には常に送信されます。
- エラーは、スクリプトの後までトリガーされないようです。上記の例では、スクリプトは "I am here" を出力し、その後致命的なエラーを出力しています。
- これは、上記のコード ブロックが表示される場所にリンクされているようです。たとえば、ブロックが一部のコントローラーに表示され、他のコントローラーには表示されない場合、コントローラーの名前だけが異なる場合にエラーがトリガーされます。
なぜこれが起こっているのかについて誰かが私に手がかりを与えることができれば、私は最も感謝しています.