📜  laravel gmail 发送邮件 2020 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:34.994000             🧑  作者: Mango

Laravel Gmail 发送邮件 2020 - PHP

在现代的互联网环境下,发送邮件已经变得越来越必需和简单。而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了。