Yii2 邮件发送 [ 2.0 版本 ]
1.在配置文件main-local.php components=>[]里面配置
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.163.com', //每种邮箱的host配置不一样
'username' => '15618380091@163.com',
'password' => '*******',
'port' => '25',
'encryption' => 'tls',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['15618380091@163.com'=>'admin']
],
],
- controller控制器中 代码:
<?php
$mail= Yii::$app->mailer->compose();
$mail->setTo('***********@qq.com');
$mail->setSubject("邮件测试");
//$mail->setTextBody('zheshisha '); //发布纯文字文本
$mail->setHtmlBody("<br>问我我我我我"); //发布可以带html标签的文本
if($mail->send())
echo "success";
else
echo "failse";
die();
?>
ok,这样就可以发送邮件了
如需加载模板 把$mail= Yii::$app->mailer->compose();
修改成 $mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]);
注:aa是想xiaoma.php里面传递的参数。
邮件模板 xiaoma.php里面的代码 :
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $user common\models\User */
$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $aa]);
?>
< a href="#" ><?php echo $resetLink ?></a>
加载模板的邮件代码:
$mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]);
$mail->setTo('1401619705@qq.com');
$mail->setSubject("邮件测试");
$mail->setTextBody('zheshisha ');
if($mail->send())
echo "success";
else
echo "failse";
die();
希望对你们有帮助!
更多yii2知识整理:http://happymc.iteye.com/
小马哥
注册时间:2014-07-01
最后登录:2016-09-25
在线时长:40小时54分
最后登录:2016-09-25
在线时长:40小时54分
- 粉丝66
- 金钱615
- 威望60
- 积分1615
共 25 条评论
我想请教一下,邮件总是被判为垃圾邮件 应该怎么解决
请问,我今天用到这个垃圾邮件的, 你解决了吗?
我解决了,我从163邮箱往qq邮箱发送
原因:我标题或者内容里面带有“测试”字眼的,被定义为了垃圾邮件,换成其他的问题,就可以了
好了是我端口搞错了
报什么错,你还是没弄好吧。。。。。。。
@小马哥 已经好了 谢谢啊 163和qq都ok了
@最初的梦想 163邮箱可以,QQ邮箱不行啊,QQ邮箱你咋调试的
@webclz 好像在qq邮箱里要设置下
我返回success,可是却收不到
echo "failse"; 看了半天没看懂
echo success 但是收不到邮件..
届似为麻?
'useFileTransport' =>false,
加上这句就可以了 ,在配置里面
因为你是天津人
@小马哥 果然是,那是为何true不行呢?
你测试的username是不是不用加@163.com 我测试不用加可以发送,加上后就发送不成功
你是收到邮件还是在网页上输出success呢?????
重新看下我的配置,我加了一句配置,改下就可以了