Yii2 mailer 动态配置报错 unknown property: Swift_MailTransport::host

发布于 2022-09-02 09:39:39 字数 1370 浏览 11 评论 0

使用Yii2建立站群,动态读取数据库的发送邮件的smtp配置,可载入后报错Setting unknown property: Swift_MailTransport::host

config/web.phpmailer配置如下:

'mailer' => [
    'class' => 'yii\swiftmailer\Mailer',
    // send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.
    'useFileTransport' => true,
    'transport' => [
        'class'      => 'Swift_SmtpTransport',
//                'host'       => '',
//                'username'   => '',
//                'password'   => '',
//                'port'       => '25',
        'encryption' => 'tls'
    ]
]

在控制器实例化beforeAction 之前进行的如下event绑定:

if (Yii::$app->params['enable_email'] && !empty(Yii::$app->params['smtp_host'])
    && !empty(Yii::$app->params['smtp_user']) && !empty(Yii::$app->params['smtp_pwd'])
) {
    Yii::$app->mailer->useFileTransport = false;
    Yii::$app->mailer->setTransport([
        'host'     => Yii::$app->params['smtp_host'],
        'username' => Yii::$app->params['smtp_user'],
        'password' => Yii::$app->params['smtp_pwd'],
        'port'     => Yii::$app->params['smtp_port']
    ]);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

说好的呢 2022-09-09 09:39:39

试试这个

Yii::$app->set('mailer', [
    'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    'transport' => [
        'class' => 'Swift_SmtpTransport',
        'host' => Yii::$app->setting->get('smtpHost'),
        'username' => Yii::$app->setting->get('smtpUser'),
        'password' => Yii::$app->setting->get('smtpPassword'),
        'port' => Yii::$app->setting->get('smtpPort'),
        // 'mail' => Yii::$app->setting->get('smtpMail'), // 显示地址
        'encryption' => 'tls',
    ],
]);

来源:https://github.com/iiYii/getyii/blob/master/frontend%2Fmodels%2FPasswordResetRequestForm.php#L19-L31

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文