In this tutorial we're going to learn how we can send an email to the application admin user when a new user registers to your Laravel application.
In this example we're going to use events and listeners to know when a user has registered and the listener will then send an email to the admin of the application.
To create this boilerplate you simply use the following command.
php artisan make:auth
You will now have a new folder in your App/Http/Controllers
folder called Auth
. This will have controllers for logging in, register, forgotten password and resetting your password.
The register controller uses a trait of RegistersUsers.php
this will give you the boilerplate methods for signing up new users.
As you can see from \Illuminate\Foundation\Auth\RegistersUsers::register
it will dispatch a new Registered
event, which we can listen for in our app.
Add the following to your application event provider.
To generate new events you can add this to the $listen
property. You list out an array using the event class as the key of the array and listeners are the node vales of the array. This means that a single event can perform multiple actions by adding more listeners to the event array.
The listener will need to take the user from the event class and send an email to the global mail.from.address
. In the config folder you have a default mail.php
file this has all the default settings for the email of your app. One of these settings is the global from and name email address for your application. As this is normally the admin user so we will be using this global email address in this example.
The mailable class uses the markdown component functionality of Laravel and pass in the new user into the blade component. We can then post this information to the admin user so they know who has just signed up to the application.
That's it, that's all the code you need to send the admin an alert when a new user registers to your application.