邮件发送功能是常用的功能,通过邮件发送,我们可以及时的得到邮件报警,他人信息反馈等。
yii2.0框架怎么实现邮件的发送呢?接下来学习一下yii2.0.13 高级应用模板里面邮件的配置:需要先去163网易免费邮箱折你去哪个一个账号,开启POP3/SMTP/IMAP服务,设置一下客户端授权密码!这个很重要,在填写配置的时候password使用的是授权码而不是邮箱账号登录密码!!!

邮件发送配置:
打开配置文件将下面代码添加到 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

这是因为有些邮件服务器要求from和username必须一致,163邮箱就是这样。
为避免这个问题,我们可以将发件代码中的setFrom设置去掉,或者在param.php(或param-local.php)中配置supportEmail参数:
'supportEmail' => '18210890833@163.com'
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn