📅  最后修改于: 2023-12-03 15:02:34.994000             🧑  作者: Mango
在现代的互联网环境下,发送邮件已经变得越来越必需和简单。而Laravel作为一个流行的PHP框架,为开发者们提供了许多工具和组件来实现这一目标。其中,发送邮件服务是Laravel极为重要的一个服务,Laravel早期版本就已经内置了邮件服务,目前支持的邮件服务包括SMTP,Mailgun,Amazon SES,Mandrill等。这里我们选用Gmail发送邮件作为Demo。
在开始之前,需要先配置好Gmail账户,开启“低安全性应用的访问权限”,然后才能在Laravel中使用Gmail发送邮件。然后,需要安装laravel/ui
包,这个包可以提供Laravel的前端脚手架和用户认证方法,包括Bootstrap和Vue.js。使用Composer进行安装:
composer require laravel/ui
在.env
文件中设置以下相关环境变量:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=ssl
这个Demo展示了如何使用Laravel现代代码结构和命名空间,使用Gmail发送一封邮件。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\DemoEmail;
class DemoController extends Controller
{
public function send()
{
$email = 'youremail@gmail.com';
Mail::to($email)->send(new DemoEmail());
return "<div>Your email has been sent successfully!</div>";
}
}
// DemoEmail.php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class DemoEmail extends Mailable
{
use Queueable, SerializesModels;
public function __construct()
{
}
public function build()
{
return $this->view('emails.demo')->subject('Demo Email');
}
}
// demo.blade.php
<div>
<h1>Hi,</h1>
<p>This is a demo email sent using Laravel and Gmail.</p>
<br>
<span>Best Regards,</span>
<br>
<span>Your Name</span>
</div>
以上代码定义了一个DemoController
类,实现了发送邮件的功能。同时,还需要定义一个邮件模版demo.blade.php
和 Mailable类DemoEmail
,这个类定义了如何构造邮件和邮件的内容。可以通过Mail
中间件将构造好的邮件发送给指定的邮箱。好的,现在可以运行一下这个Demo了。在路由文件中添加路由:
Route::get('/sendemail', 'DemoController@send');
访问/sendemail
路由即可在前端看到发送成功信息,同时在你的Gmail收件箱中可能已经接收到一份Demo邮件了。
Laravel发送邮件功能是一个非常人性化和成熟的功能,同时现有的扩展性和可定制性也为开发者们提供了极大的灵活度。在实际开发中,我们可以根据自己的具体需求来选择使用哪些邮件服务,如Mailgun等。好的,以上就是这个Laravel Gmail 发送邮件 2020 - PHP 的Demo了。