Yii2 使用Mailer发送邮件

该文章介绍了如何在Yii2应用中配置Mailer组件,通过SMTP服务(以QQ邮箱为例)发送邮件,包括设置config/web.php中的transport和messageConfig,以及控制器中的send方法。同时,文章还提到了如果邮件未收到可能是因为SMTP服务未开启,并提供了QQ邮箱开启SMTP服务的步骤。
摘要由CSDN通过智能技术生成

Yii2 使用Mailer发送邮件

修改配置文件

再config/web.php文件添加mailer配置,添加到components下

'components' => [
    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        //'viewPath' => '@common/mail',
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            //我用的是QQ 的代理,所以这里是 QQ 的配置信息
            'host' => 'smtp.qq.com',
            'port' => 25,
            'encryption' => 'tls',
            'username' => '你的QQ邮箱',
            'password' => '在开启SMTP服务后,生成的授权码,不是QQ密码',
        ],
        //发送的邮件信息配置
        'messageConfig' => [
            'charset' => 'utf-8',
            //'from' => ['你的QQ邮箱' => '显示名称']
        ],

    ],
],

控制器调用

<?php

namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\web\Response;
use yii\filters\VerbFilter;
use app\models\SfEfNetwork;
use yii\web\Session;
use yii\log\Logger;
use yii\swiftmailer\Mailer;

class EmailController extends Controller
{
	public function actionSend()
    {
    	//不使用模板
       	$mail = Yii::$app->mailer->compose();
        $mail->setTo('收件人邮件');
        $mail->setSubject('邮件的标题');
        $mail->setTextBody('邮件内容文本形式');
        $row = $mail->send();//发送
    }
    
    //模板发送
	public function actionIndex()
    {
    	$mailer =Yii::$app->mailer;
        $mailer->setTransport([
            'class' => 'Swift_SmtpTransport',
            'host' => 'smtp.qq.com',
            'username' => '发件人邮件',
            'password' => '在开启SMTP服务后,生成的授权码,不是QQ密码',
            'port' => '25',
            'encryption' => 'tls'
        ]);
        $message = $mailer->compose()
            ->setFrom(['发件人邮件'=>'显示名称'])
            ->setTo(['收件人邮件'])
            ->setsubject('邮件的标题')
            ->setTextBody('邮件内容文本形式');

        $row = $message->send();
    }
}

如果状态返回1,但是没有收到邮件,则可能是发送邮箱没配置好SMTP服务,我这边是用QQ邮箱发送的,以下是QQ邮箱开启的方式。
1.点击左上角的设置,进入配置页面
在这里插入图片描述
2.选择账户找到 SMTP,开启服务
在这里插入图片描述
3.点击管理服务,点击生成授权码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值