解决Yii2邮件发送结果返回成功,但接收不到邮件的问题


Posted in PHP onMay 23, 2017

前言

本文主要介绍的是关于解决Yii2邮件发送返回成功但接收不到邮件问题的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

刚刚用了一下yii邮件发送功能,虽然结果返回成功,但接收不到邮件。

配置文件代码如下:

'components' => [
 'db' => [
  'class' => 'yii\db\Connection',
  'dsn' => 'mysql:host=localhost;dbname=yiidemo',
  'username' => 'root',
  'password' => 'root',
  'charset' => 'utf8',
 ],
 'mailer' => [
  'class' => 'yii\swiftmailer\Mailer',
  'viewPath' => '@common/mail',
  // send all mails to a file by default. You have to set
  // 'useFileTransport' to false and configure a transport
  // for the mailer to send real emails.
  'useFileTransport' => true,
  'transport' => [ 
   'class' => 'Swift_SmtpTransport', 
   'host' => 'smtp.qq.com', 
   'username' => '********@qq.com', 
   'password' => '********',
   'port' => '465', 
   'encryption' => 'ssl', 
  ], 
 ],
],

控制器代码:

public $modelClass = 'common\models\User';

public function actions()
{
 $actions = parent::actions();

 // 禁用"create" 操作后可用自己在控制器中写的方法
 unset($actions['update'],$actions['create'],$actions['delete']);
 
 //$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];
 return $actions;
}



public function actionCreate(){

 $request = Yii::$app->request;
 $params = $request->post();
 if($params){
 
 $fromName = $request->getBodyParam('fromName');
 $fromBady = $request->getBodyParam('fromBady');
 $toName = $request->getBodyParam('toName');
 $body = $request->getBodyParam('body');
 return $this->send($fromName,$fromBady,$toName,$body);
 
 }
 
 return false;

}

/*
 * Email Send function
 * @param1 $fromName
 * @param1 $toName
 * @param1 $body
 * $return boo1ean
 * 
 */

public function send($fromName,$fromBady,$toName,$body = ''){
 
 $mail = \Yii::$app->mailer->compose()
  ->setFrom([$fromName=>$fromBady])
  ->setTo($toName)
  ->setSubject('邮件发送配置')
  ->setTextBody($body) //发布纯文字文本
  ->send();
 if($mail){
  return [
   'name' => [
    'fromName' => $fromName,
    'fromBady' => $fromBady,
    'toName' => $toName,
    'body' => $body,
   ],
   'message' => '发生到['.$toName.']的邮件成功!',
   'code' => 0,
   'status' => 200,
  ];
 }else{
  return [
   'name' => 'Error',
   'message' => '发生到'.$toName.'的邮件失败!',
   'code' => 0,
   'status' => 402,
  ];
 }
}

但是你会发现数据返回是成功的但是你却没收到邮件

解决方法:

这是你应该把
'useFileTransport' => true 改成 'useFileTransport' => false,

并且你的邮箱密码是qq授权码(到你邮箱中的设置->账户 查看)

通过以上努力你会成功接收邮件!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
php一些公用函数的集合
Mar 27 PHP
PHP 输出缓存详解
Jun 20 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
PHP实现简单实用的分页类代码
Apr 08 PHP
php简单实现多语言切换的方法
May 09 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
PHP 断点续传实例详解
Nov 11 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
yii 2.0中表单小部件的使用方法示例
May 23 #PHP
php实现留言板功能(会话控制)
May 23 #PHP
php实现文件预览功能
May 23 #PHP
PHP写的简单数字验证码实例
May 23 #PHP
php实现评论回复删除功能
May 23 #PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 #PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 #PHP
You might like
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
原生js生成图片验证码
2020/10/11 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
行政助理岗位职责
2013/11/10 职场文书
个人课题方案
2014/05/08 职场文书
汽车维修求职信
2014/06/15 职场文书
献爱心标语
2014/06/21 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
个人自荐书怎么写
2015/03/26 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
Vue2.0搭建脚手架
2022/03/13 Vue.js
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript