If you are sending mail in Laravel application. And for that, you are using office365 smtp. So. In this tutorial, you will learn how to send emails in Laravel 10 using office365.
Laravel 10 Send Emails using Office365 Tutorial
By using the following steps, you can send emails using office365 smtp in laravel apps:
- Step 1 – Installing Laravel 10 Setup
- Step 2 – Configure Office365 SMTP in .env
- Step 3 – Create Mailable Class
- Step 4 – Add Email Send Route
- Step 5 – Create Directory And Blade View
- Step 6 – Create Email Controller
- Step 7 – Run Development Server
If you have the username and password of Office365, then you can start from the first step. And if not, then you can get it by following the steps given below.
Next click on create and manage app passwords.
All your app passwords will be listed on this page, to add a new one click create.
Enter a name for the app password such as your website name.
Note down the generated app password it will not be displayed again. (the below is just an example)
Now with the pass password, you’re ready to start sending emails with SMTP.
Step 1 – Installing Laravel 10 Setup
In this step, Open your terminal or command prompt.
Then execute following command into it to install or download Laravel 10 application into your server:
composer create-project --prefer-dist laravel/laravel blog
Step 2 – Configure Office365 SMTP in .env
In this step, you need to configure smtp details in .env file. So visit to your laravel app root directory and find .env. Then configure like following:
MAIL_DRIVER=smtp MAIL_HOST=smtp.office365.com MAIL_PORT=587 MAIL_USERNAME=email MAIL_PASSWORD=app_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=email MAIL_FROM_NAME="your app name"
Step 3 – Create Mailable Class
In this step, Open again your terminal or command prompt.
Then execute the following command into it to create NotifyMail mailable class:
php artisan make:mail NotifyMail
Once you have executed the above-given command. Now you need to open the notifyMail.php file, which is located app/mail directory. Then add the following code into it:
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class NotifyMail extends Mailable { use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this->view('view.name'); } }
By whatever name you will create an email template. That you want to send. Do not forget to add an email template name in build class of the above created notifymail class.
return $this->view('view.name'); to return $this->view('emails.demoMail');
In next step, you need to create email template named demoMail.blade.php inside resources/views/emails directory. That’s why we have added view name email.
Step 4 – Add Send Email Route
In this step, open /web.php, so navigate to routes directory. And then add the following routes for send email:
use App\Http\Controllers\SendEmailController; Route::get('send-email', [SendEmailController::class, 'index']);
Step 5 – Create Directory And Blade View
In this step, create directory name emails inside resources/views directory. Then create an demoMail.blade.php blade view file inside resources/views/emails directory. And update the following code into it:
<!DOCTYPE html> <html> <head> <title>Laravel 10 Send Email Example</title> </head> <body> <h1>This is test mail from Tutsmake.com</h1> <p>Laravel 10 send email example</p> </body> </html>
Step 6 – Create Send Email Controller
In this step, use the following command to create controller name SendEmailController:
php artisan make:controller SendEmailController
Then navigate to app/Http/Controllers directory and open SendEmailController.php. Then update the following code into it:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Mail; class SendEmailController extends Controller { public function index() { Mail::to('receiver-email-id')->send(new NotifyMail()); if (Mail::failures()) { return response()->Fail('Sorry! Please try again latter'); }else{ return response()->success('Great! Successfully send in your mail'); } } }
Step 7 – Run Development Server
In this step, use this PHP artisan serve command to start your server locally:
php artisan serve
Then open browser and fire the following URL on it:
http://127.0.0.1:8000/send-email
Conclusion
Laravel 10 send an email example, you have learned how to create a mailable class in Laravel 10. And using this class on how to send emails in Laravel 10.
Recommended Laravel Posts
If you have any questions or thoughts to share, use the comment form below to reach us.