Yii2.0.13-邮件发送如何配置

        邮件发送功能是常用的功能,通过邮件发送,我们可以及时的得到邮件报警,他人信息反馈等。

        yii2.0框架怎么实现邮件的发送呢?接下来学习一下yii2.0.13 高级应用模板里面邮件的配置:需要先去163网易免费邮箱折你去哪个一个账号,开启POP3/SMTP/IMAP服务,设置一下客户端授权密码!这个很重要,在填写配置的时候password使用的是授权码而不是邮箱账号登录密码!!!

冷暖自知一抹茶ck


邮件发送配置:

打开配置文件将下面代码添加到 components => [...]中(例:高级版默认配置在/common/config/main-local.php)

        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            'useFileTransport' => false,    //这里一定要改成false,不然邮件不会发送
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.163.com',
                'username' => '18210890833@163.com',
                'password' => '*********',        //如果是163邮箱,此处要填授权码
                'port' => '25',
                'encryption' => 'tls',
            ],
        ],

在控制器中调用:D:\software\wamp64\www\apitpl\frontend\controllers\CkController.php

<?php
namespace frontend\controllers;

use Yii;
use yii\web\Controller;

/**
 * Site controller
 */
class CkController extends Controller
{
    public function actionIndex()
    {
        $mail = \Yii::$app->mailer->compose()
            ->setFrom(['18210890833@163.com' => 'Yii 中文网'])
            ->setTo('961900940@qq.com')
            ->setSubject('邮件发送配置')
            //->setTextBody('Yii中文网教程真好 www.yii-china.com')   //发布纯文字文本
            ->setHtmlBody("<br>test")    //发布可以带html标签的文本
            ->send();
        if($mail)
            echo 'success';
        else
            echo 'fail';
    }
}


访问该地址即可:http://localhost/apitpl/frontend/web/ck/index.html

冷暖自知一抹茶ck

这是因为有些邮件服务器要求from和username必须一致,163邮箱就是这样。

为避免这个问题,我们可以将发件代码中的setFrom设置去掉,或者在param.php(或param-local.php)中配置supportEmail参数: 

'supportEmail' => '18210890833@163.com'

冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论