我们目前正在重写项目的一部分,以便在通过Zend Framework 2.4应用程序发送电子邮件时使用SMTP。
我们有大约25种不同的情况,我们使用ZendMailTransportSendmail
发送电子邮件,但它们不使用SMTP。我开始重写
$transport = new Sendmail();
$transport->send($message);
至
$transport = new SmtpTransport();
$options = new SmtpOptions(array(
'name' => $this->_config['smtp']['name'],
'host' => $this->_config['smtp']['host'],
));
$transport->setOptions($options);
$transport->send($message);
这是可行的,但我不想重写它的每一个实例,所以我在谷歌上搜索了一下,在Zend Framework网站(ZF1.X(上找到了这个
$tr = new Zend_Mail_Transport_Smtp('mail.example.com');
Zend_Mail::setDefaultTransport($tr);
然而,在Zend Framework 2.4中,由于setDefaultTransport
方法已不复存在,因此这已不可能实现。
我四处寻找如何在2.4中重新创建它,但没有找到解决方案。
非常感谢您的帮助。
这是我们为什么使用依赖项注入的一个完美例子。
https://framework.zend.com/manual/2.4/en/modules/zend.di.quick-start.html
看看服务经理也
https://framework.zend.com/manual/2.1/en/modules/zend.service-manager.intro.html
只定义一次服务