Yii2-发送邮件

天行子 / 2024-06-13 / 原文

发送邮件

在配置文件 config/web.php $config的components中修改以下代码:

'mailer' => [
    'class' => \yii\symfonymailer\Mailer::class,
    'transport' => [
        'dsn' => 'smtp://用户名:密码@smtp.qq.com:465',
    ],
    'viewPath' => '@app/mail',
    // send all mails to a file by default.
    'useFileTransport' => false,
]

controller控制器中发邮件代码:

public function actionSendmail() {
    $mail = Yii::$app->mailer->compose('layouts/html');
    $mail->setFrom('****@qq.com');
    $mail->setTo("****@qq.com");
    $mail->setSubject("邮件测试");
    $mail->setHtmlBody("<p style='color: red'>测试邮件,内容</p>"); //TODO 当为setTextBody时纯文本时,body内容为空,目前没找到原因
    if($mail->send()){
        echo Json::encode(['status'=>'ok','msg'=>'邮件发送成功']);
    }else{
        echo Json::encode(['status'=>'error','msg'=>'邮件发送失败']);
    }
}