php相关程序员

Laravel Win7 Xampp 测试环境QQ邮箱发送功能

2017-03-25  本文已影响12人  若飞丶

个人学习查阅摸索所得,以下代码未必是最优的,但确实实现了相应的功能,这点对现阶段的我来说已经足够了,仅供参考。

控制器

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function send()
    {
        $name = '你个大傻逼';
        $flag = Mail::send('email.test',['name'=>$name],function($message){
            $to = '2100758437@qq.com';
            $message ->to($to)->subject('夸你呢');
        });
        if($flag){
            echo '发送邮件成功,请查收!';
        }else{
            echo '发送邮件失败,请重试!';
        }
    }
}

.env邮件部分设置

MAIL_DRIVER=
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=xxxxxxxxx@qq.com
MAIL_PASSWORD=***********   //这里填写QQ邮箱smtp的授权码,并不是邮箱登录密码
MAIL_ENCRYPTION=ssl         //QQ邮箱填ssl

config/mail.php

注意(driver,host,port,encryption)这几个参数QQ邮箱都是这么填写的。
sendmail参数是环境sendmail的地址,我的环境是win7 xampp,所以这么填写.

很多教程里都是填写的'sendmail' => '/usr/sbin/sendmail -bs',这个是linux自带的sendmail地址,根据你的环境填写,我就卡在这个地方,查阅了很多资料,才拐过弯来。

<?php
return [
    'driver' => 'smtp',
    'host' =>'smtp.qq.com',
    'port' => 465,
    'from' => array('address' => 'xxxxxxxxx@qq.com', 'name' => '深圳人民发来贺电'),
    'encryption' => 'ssl',
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => 'D:\xampp\sendmail\sendmail.exe -t',
];

如果还是不行,请修改以下内容

.evn和config/app.php

检查APP_KEY和'key'两个参数的值,两个值必须一样,我卡在这个地方也有半个小时了。

php.ini设置

由于我自己的环境是win7 xampp,而xampp集成了sendmail功能。
搜索[mail function],根据自己的情况修改以下内容:
修改完成之后记得去掉参数前面的分号;

smtp_port=465

sendmail_from = xxxxxxxxx@qq.com

sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"

sendmail.ini

该文件在xampp根目录下的sendmail文件夹,根据自己的情况修改以下内容。
修改完成之后记得去掉参数前面的分号;

smtp_server=smtp.qq.com
smtp_port=465
smtp_ssl=ssl

其他邮箱设置类似,基本只需要修改配置文件里的host值和相应的帐号密码。

上一篇 下一篇

猜你喜欢

热点阅读