Laravel 7 Newsletter Tutorial with Example
Today, We will explain to you the Laravel 7 Newsletter Tutorial with Example. here we are using the “Spatie/Laravel-newsletter” package to create a newsletter in laravel.
So you can follow the below steps for Newsletter Tutorial with example in laravel 7.
Overview
Step 1: Install Laravel 7
Step 2: Install Newsletter Package
Step 3: Sign Up and get API key in MailChimp
Step 4: Setup API Key
Step 5: Create Controller
Step 6: Create Route
Step 7: Create Blade Files
Step 8: Run Our Laravel Application
Laravel 7 Newsletter Tutorial with Example
Step 1: Install Laravel 7
We are going to install laravel 7, so first open the command prompt or terminal and go to xampp htdocs folder directory using the command prompt. after then run the below command.
1 | composer create-project --prefer-dist laravel/laravel laravel7_newsletter |
Step 2: Install Newsletter PackageIn this step, We will install an amazon s3 package using the below command.
1 | composer require spatie/laravel-newsletter |
Now, We will generate a configuration file for the newsletter using the following command.
1 | php artisan vendor:publish --provider="Spatie\Newsletter\NewsletterServiceProvider" |
Step 3: Sign Up and get API key in MailChimp
here in this step, you have to login or sign up on your Mailchimp account . after then you can find and get the API key in your Mailchimp account.
Step 4: Setup API Key
After the complete installation of the newsletter package. we have to set the API key and id configuration. now we will open the .env file and add the API key and id. See below changes in a .env file.
1 2 | MAILCHIMP_APIKEY=Api Key MAILCHIMP_LIST_ID=List Id |
Step 5: Create Controller
Here below command help to create the controller.
1 | php artisan make:controller NewsletterController |
app/Http/NewsletterController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Newsletter; class NewsletterController extends Controller { public function create() { return view('newsletter'); } public function store(Request $request) { if ( ! Newsletter::isSubscribed($request->email) ) { Newsletter::subscribePending($request->email); return redirect('newsletter')->with('success', 'Thanks For Subscribe'); } return redirect('newsletter')->with('error', 'Sorry! You have already subscribed '); } } ?> |
Step 6: Create Route
Add the following route code in the “routes/web.php” file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('newsletter','NewsletterController@create'); Route::post('newsletter','NewsletterController@store'); ?> |
Step 7: Create Blade Files
So finally, first we will open the newsletter.blade.php file and then paste the following code.
resources/views/newsletter.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <!DOCTYPE html> <html lang="en"> <head> <title>Laravel 7 Newsletter Tutorial with Example - XpertPhp</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <div class="col-lg-12"> @if ($message = Session::get('success')) <div class="alert alert-success alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if ($message = Session::get('error')) <div class="alert alert-danger alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif </div> </div> <form method="post" action="{{url('newsletter')}}"> @csrf <div class="row"> <div class="col-md-4"></div> <div class="form-group col-md-2"> <label for="Email">Email:</label> <input type="text" class="form-control" name="email"> </div> </div> <div class="row"> <div class="col-md-4"></div> <div class="form-group col-md-4"> <button type="submit" class="btn btn-success">Submit</button> </div> </div> </form> </div> </body> </html> |
Step 8: Run Our Laravel Application
We can start the server and run this example using the below command.
1 | php artisan serve |
Now we will run our example using the below Url in the browser.
1 | http://127.0.0.1:8000/newsletter |
Read Also
Laravel 6 CRUD (Create Read Update Delete) Tutorial For Beginners
Laravel 7 CRUD Operation With Ajax Example
Laravel 6 CRUD Operation With Ajax Example
Laravel 6 Pagination Example Tutorial
Laravel 7 Pagination Example Tutorial