템플릿을 사용하여 Laravel에서 메일을 보내는 방법



애플리케이션 구축을 시작할 때마다. 메일링 시스템은 사용자가 응용 프로그램에 계속 참여하도록 하기 때문에 매우 중요합니다. 따라서 이것도 매우 중요한 부분입니다. laravel과 템플릿으로 메일을 보내는 방법을 함께 배워 봅시다.

양식 설정



먼저 Laravel( composer create-proeject laravel/laravel sendmail) 을 설치해야 합니다. 그런 다음 laravel 애플리케이션을 설치할 때 양식을 설정해야 합니다. 우리는 항상 views 폴더에 welcome.blade.php 파일을 가지고 있습니다. 그래서 먼저 그 안에 양식을 만듭니다. welcome.blade.php 파일.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Send Mail</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>

<body>
    <div class="container">
        <div class="row py-5 my-5 mx-5 px-5">
            <h2>Send Mail</h2>
            <form action="{{route('sendmail')}}" class="form" method="POST">
                @csrf
                <div class="row">
                    <div class="col-lg-6">
                        <input type="email" name="email" placeholder="email" class="form-control">
                    </div>
                    <div class="col-lg-6">
                        <input type="text" name="title" class="form-control" placeholder="title">
                    </div>
                    <div class="col-lg-12 pt-2">
                        <textarea name="content" placeholder="write..." class="form-control" cols="30"
                            rows="10"></textarea>
                    </div>
                    <div class="col-lg-12 pt-2">
                        <button class="btn btn-primary" type="submit">Send</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</body>

</html>


이렇게 하면 환영 페이지가 될 첫 페이지에 양식이 생깁니다. 그리고 내 친구, 당신이 그렇게 했을 때 데이터베이스 양식 없이는 아무것도 아니기 때문에 이 양식을 저장하고 싶은 충동이 들 수 있습니다. 알겠습니다. 하지만 데이터베이스에 저장하지는 않겠습니다. 저장할 필요가 없기 때문에 이유를 아십니까? 양식에서 사용자에게 직접 메일을 보내드립니다. 방법을 알아볼까요?



.env 파일 설정



.env 파일에 구성 세부 정보를 보관합니다. 주로 데이터베이스 구성과 메일을 사용합니다. 따라서 계속 진행하기 전에 .env 파일과 관련하여 코드를 살펴보겠습니다.

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=fbbbf29se90e2d7
MAIL_PASSWORD=36f531se353bc7d
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"


내 개인 정보를 사용하는 것보다 라라벨이나 다른 애플리케이션에서도 메일을 테스트할 수 있도록 임시 사용자 이름과 비밀번호를 제공하는 것을 선호합니다.

메일 만들기



다른 지점으로 이동하기 전에 메일을 먼저 작성해 봅시다. 메일 없이는 아무것도 할 수 없기 때문입니다. 좋습니다. 명령을 사용하여 이와 같은 메일을 생성하겠습니다.

php artisan make:mail sendmail --markdown=emails.sendmail


이 명령을 누르면 리소스 > 보기 디렉터리에 이메일 폴더가 생깁니다. 또한 App 디렉토리(App/Mail)에 또 다른 디렉토리가 생기고 여기에는 메일을 쉽게 보낼 수 있도록 메일 가능한 파일이 있습니다.

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class sendmail extends Mailable
{
    use Queueable, SerializesModels;
public $subject;
public $content;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($subject,$content)
    {
        $this->subject = $subject;
        $this->content = $content;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->markdown('emails.sendmail')->from('[email protected]')->subject($this->subject)->with('body',$this->content);
    }
}



컨트롤러 만들기



친구, 컨트롤러 없이 우리가 앞으로 나아갈 수 있는 방법을 알고 있습니다. 자, 먼저 컨트롤러를 만들어 봅시다.

php artisan make:controller mailsend


이제 경로 없이는 아무것도 할 수 없는 컨트롤러가 생겼습니다. 이 컨트롤러에서 메일을 구성하고 사용자에게 보냅니다. 컨트롤러 코드와 이를 수행하는 방법을 살펴보겠습니다.

<?php

namespace App\Http\Controllers;

use App\Mail\sendmail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class MailController extends Controller
{
    public function send(Request $request){

        Mail::to($request->email)->send(new sendmail($request->title,$request->content));
        return back();
    }
}



루트 만들기



컨트롤러와 메일 파일을 설정한 후. 모든 요청을 처리할 경로만 있으면 됩니다. 많은 요청을 실행하지는 않겠지만 경로가 없으면 이 프로세스의 주요 부분이기 때문에 경로가 필요합니다. 우리는 아무것도 할 수 없습니다. 양식 요청을 처리하는 경로를 만들어 봅시다.

<?php

use App\Http\Controllers\MailController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::post('sendmail',[MailController::class,'send'])->name('sendmail');


이제 설정이 완료되었으며 템플릿을 사용하려면 블레이드 파일을 사용해야 하며 블레이드에는 마크다운 템플릿이 있어야 합니다.

@component('mail::message')
# Introduction

{{$body}}

@component('mail::button', ['url' => ''])
Button Text
@endcomponent

Thanks,<br>
{{ config('app.name') }}
@endcomponent



이 설정을 완료하면 메일 트랩 계정에서 메일을 받을 수 있습니다.



결론



이 튜토리얼에서 배우기를 바랍니다. 그러나 나는 이것으로부터 많은 것을 배웠다. 웹 개발에 대한 이러한 종류의 콘텐츠와 콘텐츠가 마음에 드시면 제 유튜브 채널도 구독하실 수 있습니다.

Let’s learn together and learn fast

larachamp



게시물How to send mail in Laravel with templatelarachamp.com에 처음 등장했습니다.

게시물 How to send mail in Laravel with templatelarachamp.com에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기