Yii2发送邮件

参照于 http://www.manks.top/yii2_swi...
直接上代码
一、配置文件web.php

'mailer' => [ 
            'class' => 'yii\swiftmailer\Mailer', 
             'viewPath' => 'xx/mail', //根据实际情况配置
            
            'useFileTransport' => false, 
            'transport' => [ 
              //这里如果你是qq的邮箱,可以参考qq客户端设置后再进行配置 http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
                'class' => 'Swift_SmtpTransport', 
                'host' => 'smtp.163.com', 
                'username' => 'XXX@163.com', //改成自己的用户名密码
                'password' => 'XXX', 
                'port' => '994', //或者25端口
                'encryption' => 'ssl', //或者tls
            ], 
            'messageConfig'=>[ 
                'charset'=>'UTF-8', 
                'from'=>['XXX@163.com'=>'发送人的名字'] 
            ], 
        ], 

二、基础用法

public function actionSend(){
        $mail= Yii::$app->mailer->compose(); 
        $mail->setTo('XXX@qq.com'); //要发送给那个人的邮箱 
        $mail->setSubject("邮件主题"); //邮件主题 
        $mail->setTextBody('测试text'); //发布纯文字文本 
        $mail->setHtmlBody("测试html"); //发送的消息内容 
        var_dump($mail->send());
    }

三、发送多个邮件

public function actionSendmult(){
        $users = ['XXX@163.com','XXX@qq.com'];
        foreach($users as $user) {
            $messages[] = Yii::$app->mailer->compose() 
                ->setTo($user) 
                ->setSubject('测试主题') 
                ->setHtmlBody('<h1>测试多邮件</h1>'); 
        } 
        $res = Yii::$app->mailer->sendMultiple($messages);
        if ($res){
            echo 'success';
        }
    }

四、发送邮件用模板

controller代码:
public function actionSendtem(){
        $res = Yii::$app->mailer->compose('welcome', [ 
                'html' => 'html', //key固定,value是模版文件名,布局文件在mail\layouts目录下面
                'title' => '邮件' ,//传递的参数
            ]) 
            ->setTo('XXX@qq.com') 
            ->setSubject('Message subject') 
            ->send(); 
        var_dump($res); //true
    }
    
welcome.php文件:

<h2><?= $title ?></h2>

五、发送文件和图片

public function actionFile(){
        $message = Yii::$app->mailer->compose(); 
        $message->attach('img/2.png'); //可访问的图片地址或者文件
        $message->attachContent('文件内容', ['fileName' => '1.txt', 'contentType' => 'text/plain']); 
        $message->setTo('XXX@qq.com'); 
        $message->setSubject('Message subject'); 
        $res = $message->send();
        if ($res){
            echo 'success';
        }
    }

六、内容镶嵌图片

//controller 
Yii::$app->mailer->compose('welcome', [ 'title' => '嵌入图片', 'imageFileName' => '图片可访问地址' ]) 
    ->setTo('***@163.com') 
    ->setSubject('Message subject') 
    ->send(); 
//welcome.php 
<img src="<?= $message->embed($imageFileName); ?>"> //或者这里直接写图片的可访问地址,不用embed方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值