我们在使用YII2的时候,经常会遇到需要定义config里各种参数,某些时候我们需要进行一些参数的修改。比如需要一个邮件发送功能,但是发送邮件的参数保存在数据库里面,所以我们就需要自定义发送邮件的各项参数了。
我们通常会进行以下配置
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.qq.com',
'username' => '888888@qq.com',
'password' => '8888',
'port' => '25',
'encryption' => 'tls',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['88888@qq.com'=>'admin']
],
],
获取到mailer对象如下,Yii::$app->mailer
,YII2 的设计Yii::$app
下的对象 刚好components
里配置的对象,
通过上面的components
的配置结构我们知道mailer
对象是由yii\swiftmailer\Mailer
类生成的,并且mailer
还有一个transport
对象由Swift_SmtpTransport
类生产,通过以下操作
我们就得到了$mAiler实列:
$mAiler->setTo($to);//收件人
$mAiler->setSubject($subject);//主题
$mAiler->setTextBody($text);//内容
$mAiler->send();
我们也可以通过Yii::$app->mailer
拿到 mailer->对象
,然后mailer->transport->host...
等等进行变量的定义,但是 PHPstorm 没有对代码进行提示,所以不太喜欢,如果你不慌倒是可以使用。
如果需要临时改变以下db的属性你也可以有以下操作,至于效果嘛。。。我还没去试,估计是对当前一次的http请求生效吧
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
第一张图有点模糊,能换成代码吗?
@暴走黄小超 已修改
@加班中途去撩妹 谢谢~