扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在Laravel5.4当中发送邮件需要配置的文件有两个,分别是位于项目路径下的.env和config/mail.php
成都创新互联是一家集网站建设,贡山企业网站建设,贡山品牌网站建设,网站定制,贡山网站建设报价,网络营销,网络优化,贡山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
mail.php文件的内容是这样的:
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
.env文件中和发送邮件相关的部分是这样的:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
可以看出其中的很多参数直接引自.env文件,比如'driver' => env('MAIL_DRIVER', 'smtp'),若是.env文件中的MAIL_DRIVER设置了值,则使用MAIL_DRIVER的值,否则使用后面默认的smtp。在实现发送邮件功能的过程中,先修改.env文件:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME='你自己的邮箱'
MAIL_PASSWORD='你自己的授权码'
MAIL_ENCRYPTION=ssl
然后修改config目录下的mail.php,只要修改'from'就行了。
'from' => [
'address' => '你自己的邮箱',
'name' => '你希望显示的名称',
],
比如'address'=>'123456@qq.com','name'=>'金太阳',对方的收件时的发件人名称就是‘金太阳’、地址是‘123456@qq.com’。当然也可以不修改mail.php文件,但这样就需要在.env中添加MAIL_FROM_ADDRESS和MAIL_FROM_NAME了。
这些配置好以后,在项目路径下执行php artisan make:mail Test命令,这样就会在app\Mail下生成Test.php的文件,这个文件就是我们创建的邮件类,以后每一封发送出的邮件都是该类生成的一个实例。该类刚创建时只有两个方法:
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class Test extends Mailable
{
use Queueable, SerializesModels;
public function __construct()
{
//
}
public function build()
{
return $this->view('view.name');
}
}
如果想要通过邮件发送一点什么给收件人,可以修改这个类。比如我们要发送一个茶杯($cup)的颜色和容量信息给收件人,那么就这样:
use Queueable, SerializesModels;
public $cup;
public function __construct($cup)
{
$this->cup = $cup;
}
public function build()
{
return $this->view('view.name');
}
'view.name'是邮件的模板,比如我们的模板文件是位于views/mail下的cupinfo.blade.php,那么就要修改为return $this->view('mail.cupinfo');
cupinfo.blade.php文件可以这么写来显示茶杯的信息:
颜色:{{$cup->colour}}容量:{{$cup->volume}}
这样我们的邮件发送准备工作就完成了。需要发送茶杯信息的功能时只需要加入以后代码就可以了:
Mail::to($user)->send(new Test($cup));
代码中的$user是收件人,Laravel会自动从$user中取得name和email属性。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流