legend3---lavarel中使用qq邮箱发送邮件

一、总结

一句话总结:

第一步:配置邮箱做服务器,比如qq邮箱,网易163邮箱
第二步:配置lavarel的配置文件
第三部:写邮件发送代码就去看lavarel的手册,很详细

1、在qq邮箱中配置IMAP/SMTP服务的时候的授权码的作用是什么?

方便第三方登录:在lavarel中使用邮箱用户名加授权码登录以便发送邮件

2、lavarel中的mail源文件的位置在哪?

vendor的lavavel里面:legend3\vendor\laravel\framework\src\Illuminate\Mail\Mailer.php

3、lavarel中发送邮件的方法主要是什么方法?

send方法:\Mail::send('mail.reg',[],function ($message){
    //发送邮件
public function send_email(){
\Mail::send('mail.reg',[],function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}

二、lavarel中使用qq邮箱发送邮件

第一步:配置邮箱做服务器,比如qq邮箱

在邮箱设置开启POP3/SMTP服务和IMAP/SMTP服务

会让你发送短信验证,然后给你授权码(在lavarel中配置需要)

(这张是用的别人的图片)

 

第二步:配置lavarel的配置文件

配置.env

配置config中的mail

第三部:写邮件发送代码就去看lavarel的手册,很详细

最简单的发送代码

    //发送邮件
public function send_email(){
\Mail::raw('邮件测试',function ($message){
$message->to('404006308@qq.com');
});
}

成功实例

带上主题

    //发送邮件
public function send_email(){
\Mail::raw('邮件测试',function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}

5、发送视图代码及实例

send方法

    //发送邮件
public function send_email(){
\Mail::send('mail.reg',[],function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}

视图位置

视图代码

{{--用户注册发送邮件的模板视图--}}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
</body>
</html>

收到的邮件结果

二、Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)

转自或参考:Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)
https://blog.csdn.net/woqianduo/article/details/81024244

生成控制器

php artisan make::controller MailController

配置路由

Route::any('mail/send','MailController@send');

在app/Http/Controllers生成了一个MailController控制器,如下所示:

<?php
namespace App\Http\Controllers;
use App\Http\Requests;
class MailController extends Controller {
//
}

编辑上面控制器,加入以下的逻辑处理:

use Mail;
class MailController{
public function send() {
$name = '我发的第一份邮件';
// Mail::send()的返回值为空,所以可以其他方法进行判断
Mail::send('emails.test',['name'=>$name],function($message){
$to = '123456789@qq.com'; $message ->to($to)->subject('邮件测试');
});
// 返回的一个错误数组,利用此可以判断是否发送成功
dd(Mail::failures());
}
}

Mail::send();需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量(邮箱发送的文本内容),第三个为一个闭包,参数绑定Mail类的一个实例。

在resources/emails下创建一个模板文件。

{{$name}} hello world。

好,现在在服务器上进行测试了,在地址栏输入http://localhost/mail/send(自己的访问地址),发送成功。

1. 发送纯文本邮件

Mail::raw('你好,我是PHP程序!', function ($message) {
$to = '123456789@qq.com';
$message ->to($to)->subject('纯文本信息邮件测试');
});

2.邮件中发送附件

发生图片:

{{$name}},这是一封测试邮件
<br>
<img src="{{$message->embedData($image,'test.jpg')}}">
public function send(){
$image = Storage::get('images/obama.jpg'); //本地文件
//$image = 'http://www.baidu.com/sousuo/pic/sdaadar24545ssqq22.jpg';//网上图片
Mail::send('emails.test',['image'=>$image],function($message){
$to = '123456789@qq.com';
$message->to($to)->subject('图片测试');
});
if(count(Mail::failures()) < 1){
echo '发送邮件成功,请查收!';
}else{
echo '发送邮件失败,请重试!';
}
}

3. 邮件附件

public function sendFile(){
$name = '我发的第一份邮件';
Mail::send('emails.test',['name'=>$name],function($message){
$to = '123456789@qq.com';
$message->to($to)->subject('邮件测试');
$attachment = storage_path('xls/files/test.xls');
// 在邮件中上传附件
$message->attach($attachment,['as'=>'中文文档.xls']);
});
}

$message的attach方法上传附件,该方法第一个参数是附件地址,第二个参数为一些额外参数,这里我们通过as指定附件在邮件中的显示名称。

测试如果显示文件名乱码的话,就这样写

$message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode('中文文档')."?=.xls"]);

-

 

最新文章

  1. TODO:这是一个我的自媒体
  2. ASP.NET中Session的sessionState 4种mode模式
  3. 《转载》Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
  4. 坑爹的Maven
  5. Python 安装easy_install详解
  6. STL之deque用法详解
  7. 【Linux安全】防止任意用户使用 su 切换到 root
  8. 【转】打包AAC码流到FLV文件
  9. c# 获取某个对象的[公有属性]的名称,类型,值
  10. generating permunation
  11. example001点击隐藏
  12. java I/O框架 (二)文件操作(File)
  13. [LOJ 6248]「CodePlus 2017 11 月赛」晨跑
  14. Codeforces483B. Friends and Presents(二分+容斥原理)
  15. 理解ASP.NET的IDataReader
  16. ZH奶酪:CSS中限制span显示字数
  17. 关于onetoone 的2张表关联中间表的策略
  18. link 和 import 导入外部样式的区别
  19. 16 Django-admin管理工具
  20. jQuery 设置图片 src 的2种方法

热门文章

  1. 模板 - 强连通分量/割点/桥 - Tarjan
  2. Qt3D 设置窗口背景颜色和图案
  3. javascript异步延时加载及判断是否已加载js/css文件
  4. Asp.net Core中文转换成拼音
  5. sql server 对数运算函数log(x)和log10(x)
  6. qt QAbstractItemModel一些方法介绍
  7. 基于HttpRunner,解析swagger数据,快速生成接口测试框架
  8. Rootkit XSS
  9. Ubuntu16.04下caffe CPU版的详细安装步骤
  10. jpa 自定义sql 删除方法注意点