在Zend Framework 2.4中为Zend\Mail\Message设置默认传输方法



我们目前正在重写项目的一部分,以便在通过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

只定义一次服务

最新更新