例如,我试图在下面添加的基本模板config/web.php
中设置邮件程序的配置。
$config = [
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'testmailhost.com', // want to replace with $mail_host
'username' => 'test@test.com',
'password' => 'testing111',
'port' => '587',
'encryption' => 'tls'
]
]
]
];
现在,我要设置存储在数据库表设置中的主机,用户名,密码端口等的值。那么如何在这里替换这些值。
我已经创建了一个组件,可以使用以下方式访问值
$st = Yii::$app->getTable;
$mail_host = $st->settings('general', 'mail_host');
答案 0 :(得分:1)
Yii2 Mailer类为您提供了一个名为setTransport
的公共方法,您可以将传输配置数组作为参数传递给该方法。
只需在配置中添加邮件程序组件配置,然后通过您的自定义组件添加transport
配置即可。
$config = [
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
]
]
];
请参见下面的代码,您现在可以在组件中使用它来从数据库中添加传输配置。
Yii::$app->mailer->setTransport(
[
'class' => 'Swift_SmtpTransport',
'host' => 'localhost',
'username' => 'username',
'password' => 'password',
'port' => '587',
'encryption' => 'tls'
]
);
希望这会有所帮助。