Laravel 8 이메일 알림 예제

16903 단어 laravel
원래 게시 @ https://codeanddeploy.com 샘플 코드를 방문하여 다운로드하십시오.
https://codeanddeploy.com/blog/laravel/laravel-8-email-notification-example

이 게시물에서는 Laravel 8 이메일 알림을 구현하는 방법의 예를 보여드리겠습니다. 우리는 이메일 알림이 웹 애플리케이션과 Laravel 프레임워크에서 구현해야 할 가장 중요한 기능 중 하나라는 것을 알고 있습니다. Laravel은 이메일, SMS 및 Slack과 같은 모든 전달 채널로 쉽게 보내는 알림 클래스를 사용하여 이메일을 보내는 쉬운 방법을 제공합니다. Laravel에서 알림을 사용하는 이점은 이것이 지정된 사용자와 이미 연결되어 있다는 것입니다. User 객체 값의 매개변수를 입력하면 클래스가 전송을 처리합니다.

Laravel 알림에서는 웹 인터페이스에 쉽게 표시되도록 데이터베이스에 저장할 수도 있습니다.

이 Laravel 알림 예제에서 우리는 이메일을 사용하여 프로젝트가 할당된 사용자에게 알립니다.

Laravel 이메일 알림에 대해 알아보려면 아래 내용을 따르십시오.

1단계: 라라벨 설치



로컬에 Laravel 8이 설치되어 있지 않은 경우 아래 명령을 실행하십시오.

composer create-project --prefer-dist laravel/laravel laravel-email-notification


2단계: 데이터베이스 구성



Laravel 프로젝트가 최신인 경우 데이터베이스 자격 증명을 업데이트해야 합니다. Laravel 8 프로젝트에서 .env 파일을 열기만 하면 됩니다.
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name_here
DB_USERNAME=your_database_username_here
DB_PASSWORD=your_database_password_here


3단계: 마이그레이션 설정



여기에서 마이그레이션을 실행하기 전에 먼저 알림 테이블을 생성해야 합니다. 다음 명령을 실행하십시오.

php artisan notifications:table



php artisan migrate


그런 다음 완료되면 사용자를 위한 시더를 만들어 봅시다. 다음 명령을 실행합니다.

php artisan make:seeder CreateUsersSeeder


일단 시더가 데이터베이스/시더 디렉토리에 친절하게 생성됩니다. CreateUsersSeeder.php를 열면 다음 코드가 표시됩니다.

<?php

namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;

class CreateUsersSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        User::create([
            'name' => 'Juan',
            'email' => '[email protected]',
            'password' => bcrypt('password')
        ]);
    }
}


그런 다음 다음 명령을 실행합니다.

php artisan db:seed --class=CreateUsersSeeder


Learn more about Laravel seeder here.

4단계: Laravel 이메일 알림 만들기



이제 Laravel 이메일 알림 예제를 생성하고 이름을 EmailNotification으로 지정하겠습니다. 이렇게 하려면 다음 명령을 실행하십시오.

php artisan make:notification EmailNotification


완료되면 앱/알림을 탐색하고 EmailNotification.php를 연 다음 편집합니다. 아래 예를 참조하십시오.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class EmailNotification extends Notification
{
    use Queueable;

    /**
     * @var array $project
     */
    protected $project;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($project)
    {
        $this->project = $project;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail','database'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->greeting($this->project['greeting'])
                    ->line($this->project['body'])
                    ->action($this->project['actionText'], $this->project['actionURL'])
                    ->line($this->project['thanks']);
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toDatabase($notifiable)
    {
        return [
            'project_id' => $this->project['id']
        ];
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}


4단계: 경로 설정



내 예에서는 crud 경로를 수동으로 생성합니다. "routes/web.php"파일을 열고 다음 경로를 추가하십시오.

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| 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('/', function () {
    return view('welcome');
});

Route::get('/send', '\App\Http\Controllers\HomeController@send')->name('home.send');


5단계: 컨트롤러 설정



이 섹션에서는 경로에 설정한 대로 HomeController에 이메일 알림을 추가합니다. 컨트롤러의 전체 코드는 아래를 참조하십시오.

<?php

namespace App\Http\Controllers;

use Notification;
use App\Models\User;
use Illuminate\Http\Request;
use App\Notifications\EmailNotification;

class HomeController extends Controller
{
    public function send() 
    {
        $user = User::first();

        $project = [
            'greeting' => 'Hi '.$user->name.',',
            'body' => 'This is the project assigned to you.',
            'thanks' => 'Thank you this is from codeanddeploy.com',
            'actionText' => 'View Project',
            'actionURL' => url('/'),
            'id' => 57
        ];

        Notification::send($user, new EmailNotification($project));

        dd('Notification sent!');
    }
}


이제 코드가 사용자에게 알림을 보낼 준비가 되었습니다. serve 명령을 실행하여 지금 테스트할 수 있습니다.

php artisan serve


그런 다음 브라우저에서 아래 URL을 실행하여 사용자에게 이메일 알림을 보냅니다.

http://127.0.0.1:8000/send


이제 Laravel이 이메일 알림을 보냈습니다. 아래 출력을 참조하십시오.



Laravel은 옵션을 보내는 방법도 제공합니다.

$user->notify(new EmailNotification($project));



그리고 다음 코드를 사용하여 사용자 알림을 받을 수 있습니다.

dd($user->notifications);


이 튜토리얼이 도움이 되었으면 합니다. 친절하게 여기를 방문하십시오 https://codeanddeploy.com/blog/laravel/laravel-8-email-notification-example 이 코드를 다운로드하려면.

행복한 코딩 :)

좋은 웹페이지 즐겨찾기