Laravel 9에서 메일 보내기

Laravel 9에서 메일 보내기

2022-10-18 last update

6 minutes reading mail laravel tutorial


라라벨 메일



Laravel은 SMTP, Mailgun, Postmark 등과 같은 드라이버를 사용하여 간단한 이메일 API 구성 요소를 제공하여 메일 전송을 간단하고 깨끗하며 빠르고 안정적으로 만들었습니다. 이메일은 클라우드 또는 로컬 서비스를 통해 보낼 수 있습니다. laravel을 사용하여 로컬에서 간단한 메일을 설정해 보겠습니다.

단계



메일 서비스 제공업체를 찾으십시오. 우리는 Mailtrap을 테스트 공급자로 사용할 것입니다.



계정을 만들고 .env 파일에 Laravel에 대한 구성을 복사하여 붙여넣습니다.



You can skip this if you already have a mail provider.



MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=//username
MAIL_PASSWORD=//password
MAIL_ENCRYPTION=tls

새 라라벨 프로젝트 생성



composer create-project laravel/laravel laravelmail

메일링 가능한 클래스를 만드십시오.



php artisan make:mail SimpleMail

메일 클래스는 /app/Mail/SimpleMail.php 에서 찾을 수 있습니다. 이 코드 블록을 복사하여 귀하의 것으로 바꾸십시오.



<?php
    namespace App\Mail;
    use Illuminate\Bus\Queueable;
    use Illuminate\Contracts\Queue\ShouldQueue;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;

    class SimpleMail 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->from(config('MAIL_USERNAME'))
            ->view('mail.simplemail');
        }
    }


메일링 가능한 클래스용 컨트롤러 만들기



php artisan make:controller SimpleMailController

생성된 컨트롤러는 app/Http/Controllers/SimpleMailController.php 에서 찾을 수 있습니다. 이 코드를 여러분의 것으로 바꾸세요.



<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use Mail;
    class SimpleMailController extends Controller
    {
        public function index() {
            $passingDataToView = 'Simple Mail Send In Laravel!';
            $data["email"] = '[email protected]';
            $data["title"] = "Mail Testing";

            Mail::send('mail.simplemail', ['passingDataToView'=> $passingDataToView], function ($message) use ($data){
                $message->to($data["email"],'John Doe');
                $message->subject($data["title"]);
            });;

            return 'Mail Sent';
        }
    }


메일 가능 클래스에 대한 보기를 작성하십시오.



리소스 폴더로 이동하여 mail 이라는 폴더를 만든 다음 메일 폴더 안에 simplemail 이라는 블레이드 파일을 만듭니다. 파일 경로는 다음과 같아야 합니다. resources\mail\simplemail.blade.php . 그런 다음 이 코드를 simplemail.blade.php 파일에 붙여넣습니다.




 <div style="background-color: white;border: 2px solid #0f0870;box-shadow: 20px -13px 1px 1px #0f0870;
        width: fit-content;padding: 1rem 1rem;font-family: system-ui;">
            <h4 style="text-align: center; font-size: large;"> {{ $passingDataToView }}</h4>
            <h4 style="font-size: medium"> This is a custom mail</h4>
            <p style="font-size: medium">
                Laravel provides flexiblity for you to design your mail format to your liking
            </p>
            <p style="font-size: medium">
                Enjoy and explore the world of infinite possibilities 
            </p>
            <small>Thanks for checking this tutorial out.</small>
            <p style="display:flex;justify-content: center;align-items: center;">
                <a style="padding: 1rem;background-color: #0f0870;
                    width: max-content;color: white;text-decoration: none;" 
                    href="https://medium.com/@manu_tech">
                    Custom Button
                </a>
            </p>
    </div>



메일을 보낼 경로를 만듭니다.




<?php

    use Illuminate\Support\Facades\Route;
    use App\Http\Controllers\SimpleMailController;
    /*
    |--------------------------------------------------------------------------
    | 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('sendmail', [SimpleMailController::class, 'index']);



시사



이제 서버를 실행



    php artisan serve



그런 다음 http://127.0.0.1:8000/sendmail로 이동하십시오.





받은편지함에서(Mailtrap)