发送邮件

原来看到很多发送邮件的教程,但由于自己是新手,总找不到对应的文件位置,最终搞出来了邮件发送。
1、了解事件
事件跟JavaScript中的时间相同,用户的某种行为触发后,反馈给某种动作。
2、邮件发送(通过事件)
(1)建立回调函数,就是用户触发后的行为

//对应文件位置,不懂的话,自己去参考PHP命名空间
 namespace backend\components;
 use Yii;

 class Mail {
    public static function sendMail($event){
        $mail=Yii::$app->mailer->compose();
        $mail->setTo($event->email);
        $mail->setSubject($event->email);
        $mail->setTextBody($event->content);
        return $mail->send();

    }
 }

(2)定义事件并触发

namespace backend\controllers;

 use Yii;
 use yii\web\Controller;
 use backend\components\event\MailEvent;
 class SendMailController extends Controller{
    const SEND_MAIL='send_mail';

    public function init(){
        parent::init();
        $this->on(self::SEND_MAIL,['backend\components\Mail','sendMail']);
    }

    public function actionSend(){
        //触发邮件事件
        $event=new MailEvent();
        $event->email='1280371035@qq.com';
        $event->subject='事件邮件测试';
        $event->content='邮件测试内容';
        $this->trigger(self::SEND_MAIL,$event);
    }
 }

(3)在(1)步骤中的回调函数接受了一下参数,需要创建一个类来传递这些参数,参数必须是yii\base\Event或者其子类

 namespace backend\components\event;

 use yii\base\Event;
 class MailEvent extends Event{
    public $subject;
    public $email;
    public $content;
 }

(4)配置后可以实现发送邮件\common\config\main-local.php

        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            'useFileTransport' => false,
            'transport'=>[
                'class'=>'Swift_SmtpTransport',
                'host'=>'smtp.qq.com',
                'username'=>'128*******@qq.com',
                'password'=>'qq邮箱授权码,百度去',
                'port'=>'25',
                'encryption'=>'tls',
            ],
            'messageConfig'=>[
                'charset'=>'UTF-8',
                'from'=>['128******@qq.com'=>'自己想的名字'],
            ],
        ],
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值