使用Markdown Mailable类使用Laravel 7/6发送电子邮件
在本节中,我们将学习如何使用Markdown Mailable类发送电子邮件。任何应用程序的主要功能都是发送邮件。为此,我们将使用Laravel 6或Laravel 7应用程序并使用Markdown mailable类发送邮件。在我们的Laravel 6/7中,将使用markdown电子邮件模板。
嵌入的图像、表格、按钮、组件、电子邮件链接等由Laravel Markdown提供。在email模板中,我们可以使用漂亮的Markdown布局。在下面的示例中,我们将使用Laravel 6 mailable类与Gmail SMTP配置一起发送简单的电子邮件。这种方式非常简单,也是发送电子邮件的最佳方式。为了发送邮件,我们必须遵循以下一步一步的过程
步骤1:
在这一步中,我们将设置邮件配置。在这里,我们将添加我们的Gmail SMTP配置,如名称、密码等。为此,我们将使用.env文件并添加配置,如下所示:
.env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=javatpoint@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
步骤2:
在本节中,我们将使用Markdown创建Mailable类。Laravel 6引入了一个新的Mailable类,它为我们提供了使用Laravel事件的功能。它还提供了在应用程序中的任何地方重用它们的功能。为此,我们将首先创建一个Mailable类,然后将如下的artisan命令:
php artisan make:mail MyDemoMail --markdown=emails.myDemoMail
现在我们将使用我们的app文件夹,然后看到一个新文件。我们将使用下面的文件,然后放入以下代码:
app/Mail/MyDemoMail.phpL:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MyDemoMail extends Mailable
{
use Queueable, SerializesModels;
public details;
/** * It will create new instance message. * * @return void */ public function __construct(details)
{
this->details =details;
}
/**
* It is used to build the message.
*
* @return this */ public function build() { returnthis->markdown('emails.myDemoMail')
->with('details', $this->details);
}
}
步骤3:
在这一步中,我们将创建路由。我们将为测试邮件创建它。为此,我们将使用我们的web路由文件,然后我们将放置以下路由:
routes/web.php:
Route::get('my-demo-mail','HomeController@myDemoMail');
步骤4:
在这一步中,我们将创建控制器方法。我们将创建HomeController作为一个新控制器。之后,我们将创建一个名为HomeController.php的文件。现在我们将使用HomeController文件并将myDemoMail()添加到其中。使用这个文件,我们可以轻松地编写邮件发送代码,如下所示:
app/Http/Controllers/HomeController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Mail\MyDemoMail;
use Mail;
class HomeController extends Controller
{
/**
* It will display the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function myDemoMail()
{
myEmail = 'abcxyz@gmail.com';details = [
'title' => 'Demo of Mail from Javatpoint.com',
'url' => 'https://www.javatpoint.com'
];
Mail::to(myEmail)->send(new MyDemoMail(details));
dd("Mail Send Successfully");
}
}
步骤5:
在这一步中,我们将添加视图文件。我们将创建一个电子邮件模板文件。为此,我们将使用我们的资源文件夹并创建一个名为“电子邮件”的文件夹。之后,我们将创建一个名为“myDemoMail.blade.php”的文件。这个文件对编写设计代码很有用。我们将以下代码添加到该文件中:
resources/views/emails/myDemoMail.blade.php:
@component('mail::message')
# {{ details['title'] }}
Our message?s body.
@component('mail::button', ['url' =>details['url']])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
现在我们上面的代码可以运行了。为了快速运行上述代码,我们将使用以下命令:
php artisan serve
现在我们可以用浏览器打开下面的url:
http://localhost:8000/my-demo-mail
打开这个文件后,可以看到如下输出: