我尝试使用config/app.php
阅读Configure::read('Email');
中定义的电子邮件选项,但它会返回null
。使用Configure::read(<options name>)
可以很好地阅读其他选项。
我认为阅读Email
选项会被某种方式阻止。如何使用Email
阅读config/app.php
中定义的配置中的Configure::read()
选项?我可能需要以不同的方式阅读它们吗?
答案 0 :(得分:3)
某些配置在某些时候被“消耗”,默认情况下,当前为Cache
,Datasources
,EmailTransport
,Email
,Log
和Security.salt
,请参阅您的应用config/bootstrap.php
文件。
<强> https://github.com/cakephp/app/blob/3.2.4/config/bootstrap.php#L146-L151 强>
使用密钥导致它们在被读取后被删除,因此在引导程序中的那一点之后将不再有Email
个配置,因此在尝试阅读时您将收到null
它
如果您想稍后访问此类配置,那么您应该通过使用它的类来访问它,在您的情况下是Email
类,即通过
\Cake\Network\Email\Email::config() // (CakePHP < 3.1)
或
\Cake\Mailer\Email::config() // (CakePHP >= 3.1)
取决于您的CakePHP版本。
答案 1 :(得分:1)
在CakePHP版本中&gt; 3.4你必须使用
\Cake\Mailer\Email::getConfigTransport('smtp');