Laravel 发送邮件(最简单的讲解!)
2016-08-19 11:06
330 查看
Laravel集成了SwiftMailer库进行邮件发送,邮件配置文件位于
以上的参数 我们都会有详细的讲解! 请继续往下看!
SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。
注:ESMTP即Extended SMTP, 是对标准 SMTP 协议进行的扩展,它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。
就目前状况来看,使用
接下来其他的配置都好理解,
// 接下来我们要做的就是要在控制器写代码了!
use Mail;
在方法中需要写以下!
//
// 以上是单纯的文本发送/! 但是还不是带有图片发送的格式! 需要发送图片的格式的! 需要继续往下继续看!
图片的发送!
//这里是view成! 需要一下这么输入!
// 图片的发送和文本的发送 没有什么其他不一样的! 而是在参数后面多写了一个参数! 一个简单的图片发送的文件就好了!
config/mail.php:、
return [ 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'from' => ['address' => null, 'name' => null], 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'sendmail' => '/usr/sbin/sendmail -bs', 'pretend' => false, ]
以上的参数 我们都会有详细的讲解! 请继续往下看!
driver用于配置默认的邮件发送驱动,Laravel支持多种邮件驱动方式,包括
smtp、
Mailgun、
Maildrill、
Amazon SES、
sendmail,Mailgun和Amazon
SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。
sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,
smtp驱动通过支持ESMTP的SMTP发送邮件。
注:ESMTP即Extended SMTP, 是对标准 SMTP 协议进行的扩展,它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。
就目前状况来看,使用
smtp是最明智的选择,
sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用(汗!)。下面其它配置的说明都基于
driver是
smtp。
接下来其他的配置都好理解,
host是邮箱所在主机,比如我们使用163邮箱,对应值是
smtp.163.com,使用QQ邮箱的话,对应值是
smtp.qq.com。
port用于配置邮箱发送服务端口号,比如一般默认值是
25,但如果设置SMTP使用SSL加密,该值为
465。
from配置项包含
address和
name,前者表示发送邮箱,后者表示发送邮件使用的用户名。
encryption表示加密类型,可以设置为
null表示不使用任何加密,也可以设置为
tls/
ssl。
username表示邮箱账号,比如yaojinbu@163.com
password表示上述邮箱登录对应登录密码。
sendmail是在设置
driver为
sendmail时使用,用于指定
sendmail命令路径。
pretend用于配置是否将邮件发送记录到日志中,默认为
false则发送邮件不记录日志,如果为
true的话只记录日志不发送邮件,这一配置在本地开发中调试时很有用。
// 接下来我们要做的就是要在控制器写代码了!
use Mail;
在方法中需要写以下!
public function send() { $name = '学院君'; $flag = Mail::send('emails.test',['name'=>$name],function($message){ $to = '1072155122@qq.com'; $message ->to($to)->subject('测试邮件'); }); if($flag){ echo '发送邮件成功,请查收!'; }else{ echo '发送邮件失败,请重试!'; } }
//
Mail::send需要传递三个参数,第一个是邮件视图,第二个是传入视图的数据,第三个是一个闭包,该闭包中定义了收件人、抄送人(如果有的话)、邮件主题、附件等信息。邮件的主体内容位于局部视图中,下面我们就来定义这个局部视图,在
resources/views/admin目录下新建
test.blade.php,编辑其内容如下:
// 以上是单纯的文本发送/! 但是还不是带有图片发送的格式! 需要发送图片的格式的! 需要继续往下继续看!
图片的发送!
//这里是view成! 需要一下这么输入!
{{$name}},这是一封测试邮件 <br> <img src="{{$message->embed($imgPath)}}">
// 图片的发送和文本的发送 没有什么其他不一样的! 而是在参数后面多写了一个参数! 一个简单的图片发送的文件就好了!
$name = '学院君'; $imgPath = 'http://laravelacademy.org/wp-statics/images/carousel/LaravelAcademy.jpg'; $flag = Mail::send('emails.test',['name'=>$name,'imgPath'=>$imgPath],function($message){
相关文章推荐
- Laravel 发送邮件(最简单的讲解!)
- Laravel 发送邮件(smtp方式最简单的讲解!)-邮件部分
- Laravel5.2 发送邮件(smtp方式最简单的讲解!)-邮件部分
- 在.net中支持ESMTP身份验证的邮件发送简单讲解
- 简单的实现用户注册时,向其油箱发送激活码邮件,并进行状态处理。 .
- 一个发送邮件的简单例子
- javamail发送邮件的简单实例_来自BLOGJAVA
- python最简单发送邮件
- 基于JavaMail的Java邮件发送:简单邮件发送
- Linux下的motion detection(最简单的办公室监控系统) 邮件自动发送
- 如何在.NET 中简单使用SMTP发送邮件?
- Java Mail(二):JavaMail介绍及发送一封简单邮件
- 简单的邮件发送
- JAVAmail简单实现发送邮件
- 一个简单的自动发送邮件系统(三)
- 邮件发送简单例子-html文件
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- laravel5.4 发送SMTP邮件