解决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 相关文章推荐
聊天室php&mysql(三)
Oct 09 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
解析strtr函数的效率问题
Jun 26 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP读取xml方法介绍
2013/01/12 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Python3基础之list列表实例解析
2014/08/13 Python
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
简单谈谈python中的多进程
2016/11/06 Python
多个应用共存的Django配置方法
2018/05/30 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Django中的session用法详解
2020/03/09 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
函授大专自我鉴定
2013/11/01 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年度物流工作总结
2015/04/30 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript