如何使用yii-swiftmailer发送邮件

安装扩展:

https://www.yiiframework.com/extension/yiisoft/yii2-swiftmailer

安装此扩展的首选方法是通过composer。

方法1:php composer.phar require --prefer-dist yiisoft/yii2-swiftmailer

方法2:composer.json中的require部分,添加"yiisoft/yii2-swiftmailer": "~2.1.0"

使用:

首先、在main-loacl.php中(生产环境的配置)的componets数组中增加:

'mailer' => [
    'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    'useFileTransport' => false,   //这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
    'transport' => [
    'class' => 'Swift_SmtpTransport',
    'host' => 'smtp.163.com',  //每种邮箱的host配置不一样
    'username' => '***@163.com',
    'password' => '******',
    'port' => '25',
    'encryption' => 'tls',
    ],
    'messageConfig'=>[
    'charset'=>'UTF-8',
    'from'=>['***@163.com'=>'发件人姓名']
    ],
],
步骤二、开始使用
    /**
     * 发送邮件
     *
     * @param string $from      发送邮箱
     * @param string $to        收件邮箱
     * @param string $subject   主题
     * @param string $body      邮件内容,默认使用html
     *
     * @return bool
     */
    public function sendEmail(string $from, string $to, string $subject, string $body): bool
    {
        if( empty($from) || empty($to) ) {
            return false;
        }

        $mailer   = Yii::$app->mailer->compose();
        $mailer->setFrom($from);
        $mailer->setTo($to);
        $mailer->setSubject($subject);
        $mailer->setHtmlBody($body);
        $status     = $mailer->send();    //也可以使用$mailer->sendMultiple() 方法批量发送邮件

        return $status;
    }

    $mailer         = Mailer::instance();
    $status         = $mailer->sendEmail($fromMailbox, $toMailbox, $emailSubject, $emailOneBody);

 

你可能感兴趣的:(实用功能)