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

Setting up default transport method in Zend Framework 2.4 for Zend\Mail\Message

我们目前正在重写部分项目,以便在通过 Zend Framework 2.4-Application 发送电子邮件时使用 SMTP。

我们有大约 25 个单独的案例,我们使用 Zend\Mail\Transport\Sendmail 发送电子邮件,但他们不使用 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 Website (for 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

只定义一次服务