laravel supports markdown format for sending emails starting from version 5.4. I had time to try it on version 5.5 today. After using it, I found it very easy to use. I will make a simple record here.
Follow my steps below, you can also succeed, try it now!
Create Markdown template
php artisan make:mail Activate --markdown=emails.activate
After executing this command, the file Activate.php will be generated under the app/mail directory:
namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; use App\Models\ActivateModel; class Activate extends Mailable { use Queueable, SerializesModels; private $activate; /** * Create a new message instance. * * @return void */ public function __construct(ActivateModel $activate) { $this->activate = $activate; } /** * Build the message. * * @return $this */ public function build() { return $this->markdown('emails.activate')->with('activate', $this->activate); } }
and the template will be generated File, in resource/views/emails/activate.blade.php:
@component('mail::message') # 欢迎注册使用 Laravel 点击下面按钮进行激活。 @component('mail::button', ['url' => 'http://www.laravel.com']) 激活 @endcomponent Thanks,<br> {{ config('app.name') }} @endcomponent
Email configuration
Sending emails requires basic configuration To support, configure it in the .env file. Here I use the 163 mailbox as an example:
MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=25 MAIL_USERNAME=账号 MAIL_PASSWORD=密码 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=全局发件人地址 MAIL_FROM_NAME=全局发件人名称
Send call
Introduce Activate where you need to send emails, and use the Mail Facade The to method is called, I will make a simple route for testing here:
# routes/web.php Route::get('sendEmail', 'IndexController@sendEmail'); ``` ```php # app/Http/Controllers/IndexController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; use App\Mail\Activate; class IndexController extends Controller { public function sendEmail() { // ... code // 调用方式 Mail::to('demo@example.com')->send(new Activate($activate)); } }
Execute the test
Execute the command in the project root directory:
php artisan serve
After starting the server, open the browser and enter the URL http://localhost:8000/sendEmail, and then check whether the sending mailbox has received the email.
Related recommendations:
implementation code of markdown document management tool in php
A brief introduction to markdown editor
markdown How to get the text content of markdown
The above is the detailed content of Markdown implementation of sending email code in Laravel5.5. For more information, please follow other related articles on the PHP Chinese website!